Đối với những người khác đến với bài đăng này trên google. Có 2 lựa chọn, hoặc là sáp nhập hoặc rebasing chi nhánh của bạn. Cả hai hoạt động khác nhau, nhưng có kết quả tương tự.
Các câu trả lời được chấp nhận là một rebase . Thao tác này sẽ thực hiện tất cả các cam kết đã thực hiện our-team
và sau đó áp dụng các cam kết đã thực hiện featurex
, nhắc bạn hợp nhất chúng nếu cần.
Một lưu ý nhỏ của việc phục hồi là bạn mất / viết lại lịch sử chi nhánh của mình, về cơ bản nói với git rằng chi nhánh của bạn không bắt đầu ở mức cam kết 123abc mà ở mức cam kết 456cde. Điều này sẽ gây ra vấn đề cho những người khác làm việc trên chi nhánh và một số công cụ từ xa sẽ phàn nàn về điều đó. Tuy nhiên, nếu bạn chắc chắn về những gì bạn đang làm, thì đó là điều mà --force
lá cờ dành cho bạn.
Những gì các áp phích khác đang đề xuất là một sự hợp nhất . Điều này sẽ đưa featurex
nhánh, với bất kỳ trạng thái nào mà nó có và cố gắng hợp nhất nó với trạng thái hiện tại our-team
, nhắc bạn thực hiện một, lớn, hợp nhất cam kết và sửa tất cả các lỗi hợp nhất trước khi đẩy sang our-team
. Sự khác biệt là bạn đang áp dụng các featurex
cam kết của mình trước khi các our-team
cam kết mới và sau đó sửa các điểm khác biệt. Bạn cũng không viết lại lịch sử, thay vào đó hãy thêm một cam kết vào nó thay vì viết lại những gì đã có trước đó.
Cả hai tùy chọn đều hợp lệ và có thể hoạt động song song. Điều thường làm (theo ý tôi là, nếu bạn đang sử dụng các công cụ và phương pháp luận phổ biến như git-flow ) được thực hiện cho một nhánh tính năng là hợp nhất nó vào nhánh chính, thường thông qua một yêu cầu hợp nhất và giải quyết tất cả các xung đột phát sinh thành một (hoặc nhiều) cam kết hợp nhất.
Rebasing là một tùy chọn thú vị, có thể giúp bạn sửa chữa chi nhánh của mình trước khi tiến hành hợp nhất và giảm bớt nỗi đau khi phải thực hiện một cam kết hợp nhất lớn.