Bagaimana cara menyelesaikan konflik pilihan ceri menggunakan perubahannya?

110

Saya git cherry-pick FOOmenghasilkan konflik.

Saya bisa menelusuri file yang bentrok dan menghapus garis antara <<<<<<<dan =======, dan penanda konflik itu sendiri, tapi saya berharap ada cara yang lebih mudah.

Saya pikir yang svnsetara memilih theirs-conflictuntuk menyelesaikan.

Bagaimana cara melakukan ini git?

Saya tidak ingin git checkout --theirs <file>karena itu sepertinya menghasilkan hasil yang sama git checkout foo <file>daripada hanya git diff FOO~..FOO <file>diterapkan.

antak
sumber

Jawaban:

196

Pertama, Anda harus membatalkan pilihan ceri Anda, coba jalankan ini

git cherry-pick --abort

Kedua, cobalah membuat cherry-pick, tetapi kali ini Anda mendapatkan perubahannya bukan milik Anda, jadi lakukan ini:

git cherry-pick --strategy=recursive -X theirs {Imported_Commit}
elhadi dp ıpɐɥ ן ǝ
sumber
6
Sedikit lebih banyak informasi tentang apa yang dilakukan oleh sakelar-sakelar itu tersedia di stackoverflow.com/questions/2268172/…
antak
27
Saya mencoba ini persis: git cherry-pick --strategy=recursive -X theirs 1b92440dan saya masih diminta untuk konflik yang belum terselesaikan: Unmerged paths: deleted by them: (file path). Ada ide?
pilau
Cara yang lebih dapat dimengerti untuk mengatur ulang setelah cherry-pick / merge gagal adalah dengan menggunakangit reset --merge
Pylinux
10
git cherry-pick --abort- ini adalah cara yang disarankan untuk membatalkan operasi pengambilan ceri.
tommyk
Saya tidak punya -Xpilihan git cherry-pick. git 1.7.2.3.
Frank