ตกลงฉันคิดว่าฉันจัดการเพื่อหาลำดับงานที่จะพาคุณกลับไปยังที่ที่คุณต้องการ (ราวกับว่าคุณไม่ได้ทำป๊อป)
ทำการสำรองข้อมูลก่อนที่ !! ฉันไม่ทราบว่าสิ่งนี้จะใช้ได้กับคุณหรือไม่ดังนั้นคัดลอก repo ทั้งหมดของคุณในกรณีที่มันไม่ทำงาน
1) แก้ไขปัญหาการรวมและแก้ไขข้อขัดแย้งทั้งหมดโดยเลือกการเปลี่ยนแปลงทั้งหมดที่มาจากแพทช์ (ใน tortoisemerge สิ่งนี้จะปรากฏเป็นหนึ่ง REMOETE (ของพวกเขา))
git mergetool
2) ยอมรับการเปลี่ยนแปลงเหล่านี้ (พวกเขาจะถูกเพิ่มผ่านคำสั่ง mergetool) ส่งข้อความ "รวม" หรือสิ่งที่คุณจำได้
git commit -m "merge"
3) ตอนนี้คุณจะยังคงมีการเปลี่ยนแปลงที่ไม่ได้จัดทำในพื้นที่เดิมของคุณโดยเริ่มจากคอมมิชชันใหม่ (เราสามารถกำจัดมันได้ในภายหลัง) ตอนนี้ยอมรับการเปลี่ยนแปลงที่ไม่จัดทำของคุณ
git add .
git add -u .
git commit -m "local changes"
4) ย้อนกลับโปรแกรมแก้ไข สิ่งนี้สามารถทำได้ด้วยคำสั่งต่อไปนี้:
git stash show -p | git apply -R
5) ยอมรับการเปลี่ยนแปลงเหล่านี้:
git commit -a -m "reversed patch"
6) กำจัดแพทช์ / unpatch มุ่งมั่น
git rebase -i HEAD^^^
จากนี้ลบทั้งสองบรรทัดด้วย 'ผสาน' และ 'กลับแก้ไขแพทช์' ในนั้น
7) รับการเปลี่ยนแปลงที่ไม่มีการเปลี่ยนแปลงของคุณกลับมาและยกเลิกการกระทำ 'การเปลี่ยนแปลงในท้องถิ่น'
git reset HEAD^
ฉันเคยลองใช้มันด้วยตัวอย่างง่ายๆแล้วมันจะพาคุณกลับไปยังที่ที่คุณต้องการ - ก่อนที่จะมีการสะสมการเปลี่ยนแปลงในท้องถิ่นของคุณและการซ่อนยังคงปรากฏขึ้น