複数前のコミットを統合する
直前のコミットを今書いているものと統合したいという場合でしたら、
git commit --amend でまとめ直すことはよくやっていたのですが、
複数前のコミットを統合してまとめ直すにはどうすればいいか分からず調べました。
その手順を書き留めておこうと思います。
①git logでまとめたいコミットの1つ昔のコミットIDをチェックします。
$ git log --oneline
876e111 (HEAD -> feature/164103006) コミット1
cb366ed コミット1.2
17a7b51 コミット2
c49e7d7コミット3
8531b84コミット4
3909d72 コミット5
a1ed513 コミット6
②git rebase -i <まとめたいコミットの1つ昔のコミットID> を実行します。
$ git rebase -i c49e7d7
すると、そのコミットより新しいコミットが以下のように
pick <コミットID> コミットメッセージ
という形で vimで開いて表示されます。
pick 17a7b51 コミット2
pick cb366ed コミット1.2
pick 876e111 コミット1
③ まとめてしまいたいコミットを、pickからfixupに変更します。
pick 17a7b51 コミット1fixup cb366ed コミット1.2
pick 876e111 コミット2
すると、まとめたいコミットがその1つ昔のコミットに統合されます。
もう一度 git log で確認してみると、以下のように統合されているのがわかります。
~/p/m/f/flatea (feature/164103006|✔) $ git log --oneline
82a60dd (HEAD -> feature/164103006) コミット1
3926380 コミット2
c49e7d7 コミット3
8531b84 コミット4
3909d72 コミット5
a1ed513 コミット6