Якщо припустити, що такий графік коміту:
| (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)