สมมติว่ากราฟการกระทำเป็นดังนี้:
| (A) ---------> (B) ----------> (C)
| ^
| (master)
คุณต้องชำระเงินก่อนmasterและสร้างสาขาที่ชี้ไปที่ที่masterปัจจุบันคือ:
git checkout master
git branch pointer master
ควรมีลักษณะดังนี้:
| (A) ---------> (B) ----------> (C)
| ^
| (HEAD, master, pointer)
ตอนนี้คุณอยู่แล้วmasterเราจะบอกให้masterสาขาย้ายไปข้างหลังหนึ่งคอมมิต:
git reset master~1
ตอนนี้masterควรย้ายกลับหนึ่งช่องว่าง แต่pointerสาขายังคงอยู่ในคอมมิตล่าสุด:
| (A) ---------> (B) ----------> (C)
| ^ ^
| (HEAD, master) (pointer)
ณ จุดนี้คุณสามารถกดmasterไปที่รีโมตหรือที่ใดก็ได้จากนั้นกรอไปข้างหน้ารวมกลับไปที่pointerสาขา คุณสามารถฆ่าpointerสาขาได้ ณ จุดนั้น:
git push origin master
git merge --ff-only pointer
git branch -D pointer
รอบชิงชนะเลิศ:
| (A) ---------> (B) ----------> (C)
| ^ ^
| [ origin/master ] (HEAD, master)