Tidak ada jawaban lain saat ini yang benar-benar akan "menggabungkan" file, seolah-olah Anda menggunakan perintah gabung. (Paling-paling mereka akan mengharuskan Anda untuk memilih secara manual.) Jika Anda benar-benar ingin mengambil keuntungan dari penggabungan menggunakan informasi dari leluhur yang sama, Anda dapat mengikuti prosedur berdasarkan prosedur yang ditemukan di bagian "Penggabungan Lanjut" pada git Manual Referensi.
Untuk protokol ini, saya berasumsi Anda ingin menggabungkan file 'path / to / file.txt' dari origin / master ke HEAD - modifikasi yang sesuai. (Anda tidak harus berada di direktori teratas repositori Anda, tetapi itu membantu.)
# 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 harus menggunakan semua pengaturan penggabungan default Anda untuk pemformatan dan sejenisnya.
Perhatikan juga bahwa jika "milik kami" adalah versi salin yang berfungsi dan Anda tidak ingin terlalu berhati-hati, Anda dapat beroperasi langsung di file:
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