Tôi có hai nhánh mà tôi giữ trên đầu trang của thượng lưu/master. Một nhánh có tổ tiên khác để tạo thành một dòng.Cách dễ nhất để rebase nhiều chi nhánh trong một dòng duy nhất
U1 (upstream/master)
\
A -- B (fixes)
\
C -- D (features)
Sau đó, thượng nguồn/master di chuyển về phía trước ...
U1 -- U2 (upstream/master)
\
A -- B (fixes)
\
C -- D (features)
... và tôi muốn rebase cả các chi nhánh trên đầu trang.
U1 -- U2 (upstream/master)
\
A' -- B' (fixes)
\
C' -- D' (features)
Tôi biết hai cách để làm điều đó, mỗi cách có nhược điểm.
git rebase upstream/master fixes
git rebase fixes features
Hai lệnh này đôi khi hoạt động và đôi khi cho tôi xung đột hợp nhất trên lệnh thứ hai.
git rebase upstream/master features
# figure out the hash code of the new commit corresponding with B'
git branch -f fixes <sha of B'>
Điều này chỉ liên quan đến một lần rebase duy nhất, nhưng việc di chuyển nhánh thì tẻ nhạt và dễ bị lỗi.
Tôi đã xem xét việc rebase --preserve-merges, nhưng điều đó dường như không áp dụng được vì không có cam kết hợp nhất.
Có cách nào tốt hơn để thực hiện việc rebase không?
Bạn có thể giúp tôi và sử dụng các sơ đồ như thế này: 'A - B - C'? Điều này sẽ không chỉ làm cho câu hỏi của bạn dễ dàng hơn để suy nghĩ về, nó cũng sẽ làm cho nó hữu ích hơn cho những người khác trong tương lai. –
Đã chỉnh sửa. Nó rõ ràng hơn? –
Rất tốt, tôi đã bỏ phiếu. –