Tôi đã sử dụng Git khoảng một năm nay và nghĩ nó thật tuyệt vời, nhưng tôi mới bắt đầu phiên bản thứ hai của dự án và bắt đầu một nhánh mới cho nó. Tôi đang đấu tranh một chút với cách tốt nhất để xử lý mọi thứ trong tương lai.git - bỏ qua các cam kết cụ thể khi hợp nhất
Tôi có hai nhánh được gọi là master10 (cho v1) và master20 (cho v2). Tôi đã sửa lỗi trong v1 trên nhánh master10 và phát triển nội dung mới của master20. Bất cứ khi nào tôi thực hiện một sửa lỗi, tôi hợp nhất nó vào v2 bằng cách kiểm tra master20 và làm git merge master10
. Càng xa càng tốt.
Tuy nhiên, tôi đã thực hiện thay đổi trong v1 mà tôi không muốn trong v2, nhưng tôi muốn tiếp tục hợp nhất các bản sửa lỗi khác. Làm thế nào để tôi nói với Git bỏ qua cam kết cụ thể đó (hoặc một loạt các cam kết), nhưng điều đó tiếp tục tôi vẫn muốn hợp nhất các sửa lỗi khác.
Tôi nghĩ git rebase
có thể là những gì tôi cần nhưng đọc tài liệu và đầu của tôi gần như phát nổ.
Tôi nghĩ rằng những gì tôi muốn là một cái gì đó giống như lệnh "git sync" cho git biết rằng hai nhánh hiện đang đồng bộ hóa và trong tương lai chỉ hợp nhất các cam kết từ điểm đồng bộ hóa này.
Bất kỳ trợ giúp đánh giá cao.
Tôi tự hỏi nếu điều đó không phải là một chút nguy hiểm: mast ~ 3 là gì không được bỏ qua nhưng chỉ đơn giản là hoãn lại? Với giải pháp của bạn, bất kỳ git merge nào tiếp theo sẽ không hợp nhất lại cột ~ 3. – VonC
Đối với cam kết hoãn, tôi sẽ tạo ra một "nhánh phụ", làm chính xác những gì bạn mô tả (bao gồm git merge -s của chúng ta maint ~ 3), sau đó hợp nhất tất cả mọi thứ từ nhánh con để làm chủ. Tôi tin rằng một tương lai "git merge maint" lần này sẽ hợp nhất "mast ~ 3" – VonC
Tôi nghĩ rằng nếu bạn cần hoãn hợp nhất, bạn có ít lựa chọn nhưng bỏ qua (hợp nhất -súng ta) và sau đó áp dụng nó lệnh cherry-pick. Một khi cam kết có thể truy cập từ master, nó không thể được sáp nhập lại - tránh việc sáp nhập cùng một thay đổi hai lần là một trong những mục tiêu git chính. – araqnid