Nếu bạn muốn chỉnh sửa lịch sử của nhánh từ xa một cách triệt để (ví dụ: rebase
/amend
), hãy thực hiện thay đổi cục bộ và sau đó thực hiện git push --force
. Đôi khi nó không hoạt động (quản trị viên kho lưu trữ có thể vô hiệu hóa tính năng này); trong trường hợp đó, bạn có thể thử xóa chi nhánh từ xa bằng git push origin :my_branch
và sau đó đẩy nó lại với git push origin my_branch
. Nếu không, bạn có thể sử dụng git revert
, đây là cách được khuyến nghị nếu bạn làm việc trong một nhóm (quy tắc chung là lịch sử được xuất bản không được sửa đổi).
Dưới đây là một ví dụ (sử dụng this Github repository):
$ touch SOMETHING
$ emacs SOMETHING
$ git add SOMETHING
$ git ci -m SOMETHING
[master d14aaa0] SOMETHING
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 SOMETHING
$ git push
Counting objects: 8, done.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (6/6), 611 bytes, done.
Total 6 (delta 3), reused 0 (delta 0)
To [email protected]:23Skidoo/ghc-parmake.git
53f836a..d14aaa0 master -> master
$ git reset --hard "HEAD~"
HEAD is now at 7b2dc96 TODO update.
$ git push --force
Total 0 (delta 0), reused 0 (delta 0)
To [email protected]:23Skidoo/ghc-parmake.git
+ d14aaa0...7b2dc96 master -> master (forced update)
Nhìn vào commit history, bạn có thể thấy rằng cam kết d14aaa0 vắng mặt.
Nguồn
2011-10-19 01:56:31