Paksa Git untuk selalu memilih versi terbaru selama penggabungan?
103
Mari kita asumsikan I mergegit dan ada konflik gabungan.
Pertanyaan saya adalah: bagaimana saya bisa memaksa git untuk selalu memilih versi kode terbaru yang berkonflik sehingga saya tidak perlu menyelesaikan konflik secara manual?
tetapi saya ingin melakukan penggabungan (bukan menimpa komit), tetapi juga untuk menyelesaikan konflik secara otomatis.
bartek
Jawaban:
188
Ini sebenarnya bukan versi yang "lebih baru", tetapi Anda dapat memberi tahu git untuk selalu memilih versi pada cabang saat ini yang menggunakan git merge branch -X ours, atau lebih memilih versi dari cabang yang digabung, menggunakan git merge branch -X theirs.
Dari man git-merge:
milik kita:
Opsi ini memaksa kumpulan yang berkonflik untuk diselesaikan secara otomatis dengan menggunakan versi kami. Perubahan dari pohon lain yang tidak bertentangan dengan pihak kami tercermin pada hasil penggabungan. Untuk file biner, seluruh konten diambil dari pihak kami.
ours- theirs!! Katakan saja dan Anda mengerti apa yang dilakukan perintah itu! Saya suka Git! : D
Haywire
14
Catatan: jika Anda sudah pernah menggunakannya git merge branch, Anda harus melakukannya git merge --abortsebelum Anda dapat melakukan ini.
John Dvorak
1
Tidak berhasil untuk saya. Itu masih membatalkan penggabungan. error: The following untracked working tree files would be overwritten by merge:Saya bahkan tidak tahu mengapa file-file ini ada di cabang ini di tempat pertama, tetapi mereka harus ditimpa, dan git menolak.
mcv
2
Jika tidak terlacak, Anda harus menghapus (atau git add) mereka terlebih dahulu. Baca sedikit tentang git clean, ini dapat membantu Anda dengan itu.
Renato Zannon
Setelah dijalankan git merge ours, jika ada beberapa file konflik, apakah akan ada log? dan dapatkah saya melacak dari git merge ours?
Solusi ini membantu saya memperbaiki konflik yang tidak tergabung ketika yang saya inginkan hanyalah menimpa dengan cabang master. saya menggunakan git reset --hard master (dari lokal)
Jawaban:
Ini sebenarnya bukan versi yang "lebih baru", tetapi Anda dapat memberi tahu git untuk selalu memilih versi pada cabang saat ini yang menggunakan
git merge branch -X ours
, atau lebih memilih versi dari cabang yang digabung, menggunakangit merge branch -X theirs
.Dari
man git-merge
:sumber
ours
-theirs
!! Katakan saja dan Anda mengerti apa yang dilakukan perintah itu! Saya suka Git! : Dgit merge branch
, Anda harus melakukannyagit merge --abort
sebelum Anda dapat melakukan ini.error: The following untracked working tree files would be overwritten by merge:
Saya bahkan tidak tahu mengapa file-file ini ada di cabang ini di tempat pertama, tetapi mereka harus ditimpa, dan git menolak.git add
) mereka terlebih dahulu. Baca sedikit tentanggit clean
, ini dapat membantu Anda dengan itu.git merge ours
, jika ada beberapa file konflik, apakah akan ada log? dan dapatkah saya melacak darigit merge ours
?Saya menggunakan ini,
sumber