ฉันได้ขอให้ Git ทำการคอมมิชชันจากภายใน git bash มันทำให้ VI ขึ้นมาเหมือนที่เคยทำ
ตอนนี้ฉันต้องการที่จะยกเลิกการคอมมิชชันฉันจะป้องกันไม่ให้การคอมมิทดำเนินการต่อจากจุดนี้ได้อย่างไร?
ฉันได้ขอให้ Git ทำการคอมมิชชันจากภายใน git bash มันทำให้ VI ขึ้นมาเหมือนที่เคยทำ
ตอนนี้ฉันต้องการที่จะยกเลิกการคอมมิชชันฉันจะป้องกันไม่ให้การคอมมิทดำเนินการต่อจากจุดนี้ได้อย่างไร?
คำตอบ:
คุณมีสองทางเลือก:
ระบุข้อความการส่งเปล่า หากเป็นการกระทำใหม่และคุณยังไม่ได้บันทึกข้อความคุณสามารถใช้:q!(ออกโดยไม่บันทึก) หากคุณได้บันทึกไว้แล้ว (หรือคุณกำลังแก้ไขข้อผูกพันก่อนหน้า) เพียงแค่ลบข้อความบันทึกทั้งหมดและบันทึกอีกครั้ง สามารถทำได้ด้วยggdG+ :wqในเสียงเรียกเข้า
ให้เอดิเตอร์ออกด้วยโค้ดทางออกที่ไม่ใช่ศูนย์ ในกลุ่มคุณสามารถใช้:cq(ออกด้วยรหัสข้อผิดพลาด)
เป็นที่น่าสังเกตว่าคุณสามารถรีเซ็ตสำเนาการทำงานของคุณเป็นสถานะก่อนหน้าการส่งมอบgit reset HEAD^ได้
git reset HEAD^ร้องขอเพิ่มเติมเชลล์ของคุณอาจตีความ ^ ว่าเป็นความต่อเนื่องของบรรทัด ลองgit reset "HEAD^", git reset HEAD^^หรือgit reset HEAD~1แทนต่อคำตอบนี้: stackoverflow.com/questions/14203952/git-reset-asks-more
:q!ไม่ทำงานเมื่อแก้ไขข้อผูกพัน จะไม่อัปเดตข้อความการส่งมอบ แต่ดำเนินการแก้ไข :-(:cq ยกเลิกการแก้ไขอย่างสมบูรณ์เพื่อสรุป:
git commit) :q!เลิกใช้git commit --amend) ลบข้อความคอมมิชชัน (เฉพาะสองสามแถวแรกที่ไม่ได้ขึ้นต้นด้วย #) ตัวอย่างเช่นโดยกดปุ่ม v และใช้ปุ่มลูกศรเพื่อเลือกและกด Delete ออกด้วย:wqเพื่อใช้การเปลี่ยนแปลง ! หากคุณใช้:q!การเปลี่ยนแปลงจะหายไปและข้อความยืนยันก่อนหน้านี้จะถูกใช้เมื่อใช้ VIM มันก็โอเคในกรณีที่จะออกด้วย:cq- VIM จะออกด้วยรหัสข้อผิดพลาดและการกระทำจะถูกยกเลิก
:q!เพื่อออกจากกลุ่ม