複数のコミットを圧縮して1つのコミットにしたいとき。
% git rebase -i HEAD(うんたら)
で、設定されたエディタが起動する。
pick commit1
pick commit2
pick commit3
pick commit4
pick commit5
みたいな。commit1とcommit2を圧縮して1つのコミットにしたいときは、
pick commit1
squash commit2
pick commit3
pick commit4
pick commit5
として、内容を保存してエディタを終了する。
すると、
# This is a combination of two commits.
# The first commit's message is:
commit1
# This is the 2nd commit message:
commit2
みたいな内容でエディタが起動する。
あとはこの内容を適当にまとめて1つのコミットぽくするだけ。
追記:(うんたら)は ~3 などと指定する。~3 は以下のコマンドで確認できる。
また、HEAD^^^とHEAD~3は同じ。
git --no-pager log --graph --pretty=format:"%h %s" HEAD~10..
一番上が新しいコミット。
~1 は最新のコミットのみ、~2 は最新〜2番目に新しいコミットを意味する。
まあgit rebase -i HEAD~1なんかやってもrebaseの意味があるのか?