- Tìm số 0 đầu tiên trong một mảng bit
- Unix Hiển thị thông tin về các tập tin khớp với một trong hai mẫu
- Biểu thức chính quy thay thế nhiều tệp
- Ẩn lệnh từ xtrace
Xin chào, tôi nghĩ đây là một câu hỏi khá đơn giản nhưng tôi không quen với việc quản lý git.
Tôi sử dụng rất phổ biến http://nvie.com/posts/a-successful-git-branching-model/Cung cấp một mô hình chung cho các nhánh git của tôi. Tuy nhiên, liên quan đến giải phóng Sáp nhập nhánh vào bậc thầySau đó hợp nhất lại phát triển Branch, tôi hơi bối rối.
Tôi cũng thích Thực hành tốt nhất của Git cho các tệp cấu hình, v.v.Nhưng tôi cảm thấy đây không phải là cách tiếp cận tốt nhất.
Tôi đang nghĩ đến việc thực hiện những điều sau:
Tôi sử dụng tập lệnh shell để tự động hóa các thay đổi và có thể là toàn bộ quá trình phát triển -> phát hành -> tạo bản gốc. Tôi sẽ gọi tập lệnh này là "#: update.sh production 1.0"
nếu !([ "$1" == "sản xuất" ] || [ "$1" == "phát triển" ]); thì
echo "Phải chỉ rõ sản xuất hoặc phát triển là đối số thứ hai"
ra;
có
nếu [ ! -n "$2" ]; thì
echo "Phải chỉ định phiên bản (ví dụ: 1.2, 1.2.1)."
ra;
có
nếu ([ "$1" == "sản xuất" ]); thì
var_env="sản xuất";
git checkout -b release-$2 phát triển
có
nếu ([ "$1" == "phát triển" ]); thì
var_env="phát triển";
có
echo "Bắt đầu thay đổi thành $1..."
SRC="define('MÔI TRƯỜNG', '.*');"
DST="define('MÔI TRƯỜNG', '${var_env}');"
sed -i -e "s/[\s]*$SRC/$DST/g" index.php
echo "Đã cập nhật hằng số môi trường."
echo "Bạn có muốn tiếp tục và cam kết những thay đổi này không? (y|n)"
đọc CHÚC MỪNG
nếu([ "$WISH" == "y" ]); thì
git kiểm tra chủ
git merge --no-ff phát hành-$2
git tag -a $2
khác
echo "Được rồi. Tôi bỏ cuộc."
có
Điều này có hợp lý không?
Về cơ bản, chúng tôi thực hiện ít nhất hai lần cam kết cho mỗi phiên bản chính. Một là thiết lập các biến sản xuất, hợp nhất các biến đó vào nhánh chính, sau đó là một cam kết khác để thay đổi các biến trở lại cài đặt phát triển của chúng và hợp nhất lại vào nhánh phát triển.
1 Câu trả lời
Tuy nhiên, tôi hơi bối rối ở phần liên quan đến việc hợp nhất nhánh phát hành vào nhánh master, rồi sau đó lại vào nhánh phát triển.
Có lẽ bạn làm vậy vì bản phát hành của bạn chưa hoàn hảo. Bạn sẽ gửi bất kỳ bản sửa lỗi nào liên quan cụ thể đến bản phát hành này tới giải phóng
Chi nhánh, phát triển tính năng mới vào phát triển
Chi nhánh. Sau đó giải phóng
Sáp nhập nhánh vào phát triển
, đưa những thay đổi này vào luồng phát triển chính.
Đề xuất của bạn về việc thực hiện lần cam kết thứ hai chỉ để thay đổi cài đặt cấu hình rồi hoàn nguyên lại chỉ gây ra rắc rối và có lẽ không đáng. Một câu hỏi tương tự về cách xử lý các tệp cấu hình dành riêng cho máy đã được đặt ra ở đây:
Có lẽ còn nhiều câu hỏi tương tự. Những người ở trên có vẻ đồng thuận rằng việc đưa phiên bản chính xác của tệp cấu hình vào kho lưu trữ là một ý tưởng tồi. Ngoài ra, một số bước tạo mẫu/thay thế/tệp gnome trong tập lệnh triển khai của bạn là giải pháp phù hợp. Nó loại bỏ yếu tố con người và thực tế đảm bảo rằng bước này sẽ được thực hiện mỗi khi bạn triển khai đến một môi trường cụ thể.
Câu trả lời của VonCCó một điểm hay về vấn đề này, đặc biệt là việc tách biệt quá trình duy trì lịch sử khỏi quá trình triển khai phần mềm.
Liên quan đến các nhánh phát hành sản xuất/phát triển Git, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/12810816/
Tôi đã sử dụng Git một thời gian rồi, nhưng mặc dù đã dành nhiều thời gian cho các blog và hướng dẫn, tôi vẫn không hiểu được một số tính năng... :) Tôi đang thực hiện một dự án với những người khác và sếp của tôi đã tạo một kho lưu trữ trên bitBucket cho dự án đó. Tôi đã sao chép nó cục bộ
Đôi khi tôi gặp phải vấn đề sau: Thêm một số cam kết vào nhánh tính năng. Cập nhật bản gốc từ thượng nguồn. Muốn xem sự khác biệt giữa nhánh tính năng và nhánh chính, nhưng git diff master hiển thị đã thêm/xóa trong nhánh chính
Tôi đang sử dụng Gerrit phiên bản 2.4.2. Tôi có một nhánh master và tôi đã tạo một nhánh mới có tên là newbranch. Sau đó tôi đẩy một số thay đổi vào nhánh mới từ xa (của Gerrit). Trong Gerrit
Giả sử chúng ta có một kho lưu trữ từ xa và sao chép nó cục bộ. Chúng tôi kiểm tra nhánh master, vì vậy bây giờ chúng tôi có một nhánh master cục bộ và một nhánh remote remotes/origin/master. Sau đó tôi phải
Tôi có một dự án mà nhánh phát triển sử dụng CocoaPods, nhưng một trong những nhà phát triển đã quyết định loại bỏ nó và sử dụng Carthage thay thế. Nhánh tính năng sử dụng CocoaPods vì nó được tạo trước khi nhánh phát triển được chuyển đổi.
Tôi có một vấn đề ở nhánh chính mà tôi cần phải gỡ lỗi. Để thực hiện điều này, tôi muốn chèn một loạt trình gỡ lỗi (ví dụ: in biến), xác định lỗi và áp dụng bản sửa lỗi. Sau đó, tôi muốn hợp nhất bản sửa lỗi vào nhánh chính nhưng không muốn bỏ qua bước gỡ lỗi thay đổi. #
Tôi có một nhánh chính mà tôi đang đưa những phát triển mới nhất của mình vào đó. Đến một thời điểm nào đó, tôi đã phát hành khỏi nhánh master và tạo một nhánh mới có tên là release1. Bây giờ tôi đang thực hiện phát triển mới trên nhánh master
Tôi đang cố gắng tự động hóa một số quy trình làm việc tiêu chuẩn của mình và một điều tôi thấy mình thường xuyên làm là hợp nhất các thay đổi ở nhánh chính từ xa vào nhánh cục bộ của mình và đẩy kết quả. Vì vậy, các bước như sau: Chuyển sang master Kéo các thay đổi từ xa
Khi sử dụng Gerrit, bạn có thể dễ dàng vô tình hợp nhất mã không ổn định từ nhánh phát triển thành nhánh ổn định: $ git checkout development $ commit $ git push origin HEAD:re
Tôi đang thực hiện một dự án và đang thuê các nhà thầu để giúp tôi thực hiện một số phần của mã. Vấn đề là tôi không muốn bất kỳ nhà thầu nào nhìn thấy tất cả những điều này. Tôi có thể chỉ định cho họ một nhánh trong kho lưu trữ riêng tư trên GitHub không? Điều này đòi hỏi dòng lệnh
Tùy chọn Nhánh SVN tạo một dòng khác cho các nhà phát triển. Tùy chọn này hữu ích khi bạn muốn chia quá trình phát triển thành hai giai đoạn khác nhau. Giả sử bạn đã phát hành phiên bản 1.0 của một sản phẩm và bạn có thể muốn tạo một nhánh mới.
đóng cửa. Câu hỏi này dựa trên ý kiến. Hiện tại không chấp nhận câu trả lời. Bạn có muốn cải thiện câu hỏi này không? Cập nhật câu hỏi bằng cách chỉnh sửa bài đăng này để cung cấp thông tin và trích dẫn để trả lời câu hỏi. Đã đóng 2 năm trước. Cải thiện điều này
Có cách nào để tạo nhánh (svn) từ một bản sửa đổi cụ thể không, vì tôi muốn bỏ qua một số bản sửa đổi trong lịch sử cam kết (trong nhánh mới). Ví dụ, tôi có các bản sửa đổi từ 1 đến 1590 và tôi muốn tạo một nhánh mới và bỏ qua các cam kết (từ 1504 đến 1574) và
Tất cả các ví dụ về nhánh svn mà tôi đã thấy cho đến nay đều giống như thế này svn cp -m 'Making test branch' svn://svnrepo/hellosite svn://svnrepo/hell
Khi tôi cố gắng phân tích dự án của mình bằng máy quét Sonar, quá trình quét không thành công với thông báo lỗi sau: Nguyên nhân: Nhánh không tồn tại trên máy chủ: phát triển Rõ ràng là điều này chỉ xảy ra khi nó
Trong kho lưu trữ Mercurial của tôi, bằng cách nào đó, ai đó đã nhập một tên nhánh trống: Nếu tôi nhập id -r 2004, tôi thực sự nhận được văn bản trống. Vấn đề hiện tại là điều này gây ra sự cố với cài đặt Redmine của chúng tôi vì nó không thể đồng bộ hóa
Tôi có đoạn mã sau: srcaddr >= inet_ntoa . fromJust dstaddr >= inet_ntoa . fromJust -- Tôi muốn thực hiện hành động
Trong dự án của mình, tôi có các nhánh cục bộ dùng cho công việc và các nhánh trên ổ đĩa mạng. Tôi đã thực hiện "liên kết nhánh" giữa nhánh cục bộ và nhánh mạng. Ý tưởng của tôi là sử dụng tùy chọn liên kết để tự động sao lưu mọi cam kết cục bộ. Sau khi tôi cam kết tập tin trong nhánh cục bộ của tôi, tôi
Tôi muốn tạo một tập lệnh thực hiện nhiều hành động khác nhau bằng cách sử dụng các bảng và lệnh khác nhau tùy thuộc vào trạng thái của biến. Trong T-SQL, tôi sẽ làm như sau: DECLARE @whatToDo INT = 1; IF @whatToDo = 1 BEGIN
Viết một chương trình đọc dữ liệu đầu vào lên đến # và báo cáo số lần chuỗi ei xảy ra
Tôi là một lập trình viên xuất sắc, rất giỏi!