Không có câu trả lời hiện tại nào khác thực sự sẽ "hợp nhất" các tệp, như thể bạn đang sử dụng lệnh hợp nhất. (Tốt nhất là họ sẽ yêu cầu bạn chọn diffs theo cách thủ công.) Nếu bạn thực sự muốn tận dụng việc hợp nhất bằng cách sử dụng thông tin từ một tổ tiên chung, bạn có thể làm theo quy trình dựa trên một tìm thấy trong phần "Sáp nhập nâng cao" của git Hướng dẫn tham khảo.
Đối với giao thức này, tôi giả sử bạn muốn hợp nhất tệp 'path / to / file.txt' từ origin / master thành HEAD - sửa đổi cho phù hợp. (Bạn không cần phải nằm trong thư mục trên cùng của kho lưu trữ, nhưng nó giúp.)
# Find the merge base SHA1 (the common ancestor) for the two commits:
git merge-base HEAD origin/master
# Get the contents of the files at each stage
git show <merge-base SHA1>:path/to/file.txt > ./file.common.txt
git show HEAD:path/to/file.txt > ./file.ours.txt
git show origin/master:path/to/file.txt > ./file.theirs.txt
# You can pre-edit any of the files (e.g. run a formatter on it), if you want.
# Merge the files
git merge-file -p ./file.ours.txt ./file.common.txt ./file.theirs.txt > ./file.merged.txt
# Resolve merge conflicts in ./file.merged.txt
# Copy the merged version to the destination
# Clean up the intermediate files
git merge-file nên sử dụng tất cả các cài đặt hợp nhất mặc định của bạn để định dạng và tương tự.
Cũng lưu ý rằng nếu "của chúng tôi" là phiên bản sao chép đang hoạt động và bạn không muốn quá thận trọng, bạn có thể thao tác trực tiếp trên tệp:
git merge-base HEAD origin/master
git show <merge-base SHA1>:path/to/file.txt > ./file.common.txt
git show origin/master:path/to/file.txt > ./file.theirs.txt
git merge-file path/to/file.txt ./file.common.txt ./file.theirs.txt