ฉันจะแก้ไขข้อขัดแย้งที่เลือกเชอร์รี่โดยใช้การเปลี่ยนแปลงได้อย่างไร


112

ฉันgit cherry-pick FOOสร้างความขัดแย้ง

ฉันสามารถอ่านไฟล์ที่ขัดแย้งกันและลบเส้นระหว่าง<<<<<<<และ=======และเครื่องหมายความขัดแย้งเองได้ แต่ฉันหวังว่าจะมีวิธีที่ง่ายกว่านี้

ฉันคิดว่าสิ่งที่svnเทียบเท่ากันคือการเลือกที่theirs-conflictจะแก้ไข

ฉันจะทำสิ่งนี้ได้gitอย่างไร?

ฉันไม่ต้องการgit checkout --theirs <file>เพราะดูเหมือนว่าจะให้ผลลัพธ์เหมือนกับgit checkout foo <file>แทนที่จะgit diff FOO~..FOO <file>นำไปใช้

คำตอบ:


199

ก่อนอื่นคุณควรยกเลิกการเลือกเชอร์รี่ของคุณลองเรียกใช้สิ่งนี้

git cherry-pick --abort

ประการที่สองพยายามเลือกเชอร์รี่ แต่ในครั้งนี้คุณไม่ได้รับการเปลี่ยนแปลงของพวกเขาดังนั้นให้ทำสิ่งนี้:

git cherry-pick --strategy=recursive -X theirs {Imported_Commit}

6
ข้อมูลเพิ่มเติมเล็กน้อยเกี่ยวกับสิ่งที่สวิตช์เหล่านี้กำลังทำอยู่ที่stackoverflow.com/questions/2268172/…
antak

27
ฉันพยายามนี้ว่า: และฉันยังคงได้รับแจ้งความขัดแย้งที่ยังไม่ได้แก้ไข:git cherry-pick --strategy=recursive -X theirs 1b92440 Unmerged paths: deleted by them: (file path)ความคิดใด ๆ ?
pilau

วิธีที่เข้าใจได้ง่ายขึ้นในการรีเซ็ตหลังจากการเลือก / รวมเชอร์รี่ล้มเหลวคือการใช้git reset --merge
Pylinux

10
git cherry-pick --abort- นี่เป็นวิธีที่แนะนำในการเลิกทำการเลือกเชอร์รี่
tommyk

ฉันไม่มี-Xตัวเลือกในgit cherry-pick. คอมไพล์ 1.7.2.3
Frank
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.