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 master
và tạo một nhánh trỏ đến vị trí master
hiệ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 master
chi nhánh lùi lại một cam kết:
git reset master~1
Bây giờ, master
sẽ được di chuyển trở lại một khoảng trống, nhưng pointer
nhá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 pointer
chi nhánh. Bạn có thể giết pointer
nhá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)