これは、複数のコミットを押しつぶすことの良い説明になります:
http://git-scm.com/book/en/Git-Branching-Rebasing
ただし、すでにプッシュされているコミットには機能しません。ローカルリポジトリとリモートリポジトリの両方で、最新のいくつかのコミットをどのように押しつぶすのですか?
編集:私が行うときgit rebase -i origin/master~4 master
、最初の1つをに保ち、pick
他の3 つをに設定してから、squash
(emacsのcx ccを介して)終了します:
$ 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
ここで、2f40はpick
コミットです。そして、4つのコミットはどれもに表示されませんgit log
。コミットメッセージを入力できるように、エディターを再起動することを期待していました。何が悪いのですか?
git push --force origin master