目的
- HEADからのコミットの個数を指定して複数のコミットを一つにまとめる方法を記載する
方法
-
下記コマンドを実行する。
$ git rebase -i HEAD~HEADからのまとめるコミット数
-
エディタが開いたらまとめ元になりたいコミットを「pick」、「pick」コミットにまとめられたいコミットを「squash」と記載する。
具体例
-
$ git log
コマンドを実行したときに下記の出力がなされている時のHEADのコミットとその一つ前のコミットをまとめる方法を下記に記載する。コミットIDが「70044e」のコミットをまとめ元とし、コミットIDが「b0bc13」のコミットをまとめたい。[21:33:48]MacBook-Pro~/test/git_test$ git log commit b0bc1348910b0c4b9994c83466ab7288746d4414 (HEAD -> master) Author: 大川峻 <okawashun@MacBook-Pro.local> Date: Wed May 5 21:14:15 2021 +0900 テスト記載 1を追記 commit 70044e6aa0856b3eca659e381c40a434668f8582 Author: 大川峻 <okawashun@MacBook-Pro.local> Date: Wed May 5 21:13:03 2021 +0900 テスト用ファイルを追加 commit bfac6cdc0e30e4c4badb9830d4644518d0d0406a Author: 大川峻 <okawashun@MacBook-Pro.local> Date: Wed May 5 21:12:49 2021 +0900 first commit
-
当該リポジトリで下記コマンドを実行する。
$ git rebase -i HEAD~2
-
開いたエディタで下記のように記載する。
-
一つ前のエディタで保存すると下記のエディタが開く。特に編集などせずに保存する。
-
$ git log
を実行したところ下記のように表示され無事にコミットがまとめられた。(まとめたコミットのコミットの時間はまとめ元のコミット時間が適応されるようだ)[21:33:48]MacBook-Pro~/test/git_test$ git log commit 0b334d2c1ca24e1a2af3484b15a32f0c37d8f547 (HEAD -> master) Author: 大川峻 <okawashun@MacBook-Pro.local> Date: Wed May 5 21:13:03 2021 +0900 テスト用ファイルを追加 テスト記載 1を追記 commit bfac6cdc0e30e4c4badb9830d4644518d0d0406a Author: 大川峻 <okawashun@MacBook-Pro.local> Date: Wed May 5 21:12:49 2021 +0900 first commit