พูดว่าคนอื่นสร้างแถบไว้ด้านบนของ foo แต่คุณสร้าง baz ในระหว่างนั้นและรวมเข้าด้วยกันให้ประวัติของ
$ git lola
* 2582152 (HEAD, master) ผสานสาขา 'otherguy'
| \
| * c7256de (otherguy) แถบ
* | b7e7176 baz
| /
* 9968f79 foo
หมายเหตุ: git lolaเป็นนามแฝงที่ไม่ได้มาตรฐาน แต่มีประโยชน์
ไม่มีลูกเต๋าด้วยgit revert:
$ git ย้อนกลับ HEAD
ร้ายแรง: Commit 2582152 ... เป็นการรวมกัน แต่ไม่มีการกำหนดตัวเลือก -m
Charles Bailey ให้คำตอบที่ยอดเยี่ยมตามปกติ ใช้git revertเหมือนใน
$ git ย้อนกลับ - ไม่แก้ไข -m 1 HEAD
[master e900aad] เปลี่ยนกลับ "รวมสาขา 'otherguy'"
มีการเปลี่ยนแปลง 0 ไฟล์, การแทรก 0 ครั้ง (+), การลบ 0 ครั้ง (-)
โหมดลบ 100644 บาร์
ลบbarและสร้างประวัติของ
$ git lola
* e900aad (HEAD, master) เปลี่ยนกลับเป็น "รวมสาขา 'otherguy'"
* 2582152 รวมสาขา 'otherguy'
| \
| * c7256de (otherguy) แถบ
* | b7e7176 baz
| /
* 9968f79 foo
แต่ฉันสงสัยว่าคุณต้องการทิ้งการรวม:
$ git reset - ฮาร์ด HEAD ^
ตอนนี้ HEAD อยู่ที่ b7e7176 baz
$ git lola
* b7e7176 (HEAD, master) baz
| * c7256de (otherguy) แถบ
| /
* 9968f79 foo
ตามที่ระบุไว้ในgit rev-parseคู่มือ
<rev>^เช่น HEAD ^v1.5.1^0
ส่วนต่อท้ายของ^พารามิเตอร์การแก้ไขหมายถึงพาเรนต์แรกของการคอมมิทวัตถุนั้น ^<n>หมายถึงผู้ปกครองn -th ( เช่น <rev>^เทียบเท่า<rev>^1) ในฐานะกฎพิเศษ<rev>^0หมายถึงการกระทำเองและใช้เมื่อ<rev>เป็นชื่อวัตถุของวัตถุแท็กที่อ้างถึงวัตถุที่กระทำ
ดังนั้นก่อนที่จะอัญเชิญgit reset, HEAD^(หรือHEAD^1) เป็น b7e7176 และHEAD^2เป็น c7256de, เช่นตามลำดับผู้ปกครองครั้งแรกและครั้งที่สองของการผสานกระทำ
ระวังด้วยgit reset --hardเพราะมันสามารถทำลายงานได้