Giả sử một biểu đồ cam kết như vậy:
| (A) ---------> (B) ----------> (C)
| ^
| (master)
Trước tiên, bạn muốn thanh toán mastervà tạo một nhánh trỏ đến vị trí masterhiện tại:
git checkout master
git branch pointer master
Bây giờ sẽ trông như thế này:
| (A) ---------> (B) ----------> (C)
| ^
| (HEAD, master, pointer)
Bây giờ bạn đã ở trên master, chúng tôi sẽ yêu cầu masterchi nhánh lùi lại một cam kết:
git reset master~1
Bây giờ, mastersẽ được di chuyển trở lại một khoảng trống, nhưng pointernhánh vẫn ở trong cam kết gần đây nhất:
| (A) ---------> (B) ----------> (C)
| ^ ^
| (HEAD, master) (pointer)
Tại thời điểm này, bạn có thể đẩy masterđến một điều khiển từ xa hoặc bất cứ nơi nào, sau đó tiến nhanh hợp nhất nó trở lại pointerchi nhánh. Bạn có thể giết pointernhánh tại thời điểm đó:
git push origin master
git merge --ff-only pointer
git branch -D pointer
Sau cùng :
| (A) ---------> (B) ----------> (C)
| ^ ^
| [ origin/master ] (HEAD, master)