Có tệp có hai cam kết quan tâm, cả trên chi nhánh Master
, cả hai chỉ sửa đổi một tệp foo
: cam kết trước AA
và phiên bản hiện tại trong HEAD
. Tôi muốn hợp nhất hai phiên bản của tệp, giữ các bit của cả hai, thành HEAD
trên Master
.Git: Hợp nhất cam kết cũ vào phiên bản hiện tại
tôi đã làm điều đơn giản nhất mà tôi nghĩ sẽ làm việc:
git checkout -b merge-purgatory AA
git commit -m "pulled foo back from previous commit for merging into HEAD."
git checkout master
git merge merge-purgatory
Mà chỉ đơn giản là ghi đè phiên bản hiện tại của HEAD
foo
với phiên bản AA
. Thử kết quả chi tiết hơn git checkout -m
, cùng một kết quả: ghi đè câm.
Làm cách nào để buộc git xử lý phiên bản AA
của foo
làm một sự xung đột xung đột với phiên bản HEAD
hiện tại?
Vì vậy, về cơ bản, chỉ cần bỏ qua kiến thức của git về cam kết trước đó và sử dụng một hợp nhất thủ công/mergetool. Đã hy vọng cho một hành vi cromulent từ git, nhưng điều này là đơn giản như vậy mà tôi đã sử dụng nó thành công và chỉ cần làm một chút của sạch-up sau đó. Cảm ơn! – Noel