by shigemk2

当面は技術的なことしか書かない

git rebase -i から、連続でsquashする

git rebase -i でコミットの圧縮 - by shigemk2

以前こんなことを書いたと思う。

複数のコミットを圧縮して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

と書いたけど、squashは連続で出来る。

つまり、

pick commit1
squash commit2
pick commit3
squash commit4
pick commit5

と書いて、コミットメッセージを編集して保存すると、
commit1とcommit2が圧縮される。

それに続いて同じような画面がまた登場するので
コミットメッセージを編集して保存すると、
commit3とcommit4が圧縮される。