Điều này đưa ra một lời giải thích tốt về việc nghiền nát nhiều cam kết:
http://git-scm.com/book/en/Git-Branching-Rebasing
nhưng nó không hoạt động cho các cam kết đã được đẩy. Làm thế nào để tôi xóa sổ một số cam kết gần đây nhất trong cả repos địa phương và từ xa?
EDIT: Khi tôi làm git rebase -i origin/master~4 master
, giữ cái đầu tiên là pick
, đặt ba cái còn lại squash
, rồi thoát (thông qua cx cc trong emacs), tôi nhận được:
$ git rebase -i origin/master~4 master
# Not currently on any branch.
nothing to commit (working directory clean)
Could not apply 2f40e2c... Revert "issue 4427: bpf device permission change option added"
$ git rebase -i origin/master~4 master
Interactive rebase already started
trong đó 2f40 là pick
cam kết. Và bây giờ không ai trong số 4 cam kết xuất hiện git log
. Tôi dự kiến trình soạn thảo của mình sẽ được khởi động lại để tôi có thể nhập tin nhắn cam kết. Tôi đang làm gì sai?
git push --force origin master