ฉันต้องการยกเลิกการคอมไพล์ของฉันเนื่องจากบัญชีที่ไม่ต้องการในแหล่งกำเนิดระยะไกล แต่ฉันไม่ทราบว่าต้องแก้ไขการตั้งค่าใดกลับไป
ฉันจะกลับไปที่สถานะก่อนที่จะดึงคอมไพล์บนแหล่งกำเนิดระยะไกลได้อย่างไร
undo
ยืนยันและช่องทำเครื่องหมาย GUI ก็เป็นคนเช่นกัน!
ฉันต้องการยกเลิกการคอมไพล์ของฉันเนื่องจากบัญชีที่ไม่ต้องการในแหล่งกำเนิดระยะไกล แต่ฉันไม่ทราบว่าต้องแก้ไขการตั้งค่าใดกลับไป
ฉันจะกลับไปที่สถานะก่อนที่จะดึงคอมไพล์บนแหล่งกำเนิดระยะไกลได้อย่างไร
undo
ยืนยันและช่องทำเครื่องหมาย GUI ก็เป็นคนเช่นกัน!
คำตอบ:
หรือเพื่อให้ชัดเจนยิ่งขึ้นกว่าคำตอบอื่น ๆ :
git pull
ขออภัย?
git reset --keep HEAD@{1}
รุ่นคอมไพล์เก่ากว่า 1.7.1 --keep
ไม่ได้ หากคุณใช้เวอร์ชันดังกล่าวคุณสามารถใช้--hard
- แต่นั่นเป็นการดำเนินการที่เป็นอันตรายเพราะสูญเสียการเปลี่ยนแปลงในท้องถิ่น
ORIG_HEAD เป็นสถานะก่อนหน้าของ HEAD ซึ่งกำหนดโดยคำสั่งที่อาจมีพฤติกรรมที่เป็นอันตรายและง่ายต่อการเปลี่ยนกลับ ขณะนี้มีประโยชน์น้อยลงเมื่อ Git มีการอ้างอิง: HEAD @ {1} เทียบเท่ากับ ORIG_HEAD (HEAD @ {1} เป็นค่าสุดท้ายของ HEAD เสมอ ORIG_HEAD เป็นค่าสุดท้ายของ HEAD ก่อนการดำเนินการที่เป็นอันตราย)
man git-rev-parse
อธิบายเรื่องนี้ HEAD@{1}
เป็นค่าก่อนหน้าของสัญลักษณ์HEAD
ในreflog
ขณะที่HEAD^
เป็น (ตอนแรก) การแก้ไขผู้ปกครองHEAD
ในปัจจุบัน ทั้งสองจำเป็นต้องพยักหน้าเท่ากัน (เช่นหลังจากรีบูต, ฮาร์ดรีเซ็ต, สวิตช์สาขาและสิ่งต่าง ๆ ) อ่านบทความที่เชื่อมโยงเพื่ออ้างอิง ไชโย
git reset HEAD@`{1`}
HEAD@`{1`}
หรือว่าไม่ทำในสิ่งที่ทำงานบนเปลือกหอย POSIX เกินไป:'HEAD@{1}'
git reflog show
ควรแสดงประวัติความเป็นมาของหัวหน้า pull
คุณสามารถใช้ที่จะคิดออกว่าคุณอยู่ที่ไหนก่อน จากนั้นคุณสามารถreset
ของคุณHEAD
ในการที่กระทำ
pull
เป็นการกระทำแรกคืออะไร? ถ้าpull
อยู่ที่HEAD@{1}
และไม่มีอะไรอื่นก่อนหน้านั้นคุณจะกลับสู่สถานะก่อนหน้าได้อย่างไร
สิ่งนี้ใช้ได้สำหรับฉัน
git reset --hard ORIG_HEAD
เลิกทำการผสานหรือดึง:
$ git pull (1)
Auto-merging nitfol
CONFLICT (content): Merge conflict in nitfol
Automatic merge failed; fix conflicts and then commit the result.
$ git reset --hard (2)
$ git pull . topic/branch (3)
Updating from 41223... to 13134...
Fast-forward
$ git reset --hard ORIG_HEAD (4)
ชำระเงินนี้: HEAD และ ORIG_HEAD ใน Gitสำหรับข้อมูลเพิ่มเติม
เลิกทำการผสานหรือดึงเข้าไปในแผนผังการทำงานที่สกปรก
$ git pull (1) Auto-merging nitfol Merge made by recursive. nitfol | 20 +++++---- ... $ git reset --merge ORIG_HEAD (2)
แม้ว่าคุณอาจมีการดัดแปลงในแผนผังการทำงานของคุณคุณสามารถพูดได้อย่างปลอดภัย
git pull
เมื่อคุณรู้ว่าการเปลี่ยนแปลงในสาขาอื่นไม่ทับซ้อนกับพวกเขาหลังจากตรวจสอบผลลัพธ์ของการผสานคุณอาจพบว่าการเปลี่ยนแปลงในสาขาอื่นไม่เป็นที่น่าพอใจ การวิ่ง
git reset --hard ORIG_HEAD
จะช่วยให้คุณย้อนกลับไปยังที่ที่คุณอยู่ แต่จะยกเลิกการเปลี่ยนแปลงในพื้นที่ที่คุณไม่ต้องการgit reset --merge
เก็บการเปลี่ยนแปลงในท้องถิ่นของคุณ
ดูเพิ่มเติมที่https://stackoverflow.com/a/30345382/621690
git fetch upstream
ตอนแรกจากนั้นดูอย่างรวดเร็วgit diff upstream/branch
เพื่อดูว่าคุณจะผสานอะไรเข้าด้วยกันถ้าทุกอย่างเรียบร้อยแล้วให้ดำเนินการต่อไปgit merge upstream/branch