Daiブログ

普段学習したことや生活のことについて書いていきます〜

gitでコミットメッセージをまとめる

4c161c0 hoge
a215c1f foo           
ef4e7a4 hoge
b11131c fuga

上のようなコミット履歴がありhoge同士を1つにまとめたいのでgit rebase -iを使っていく

git rebase -i HEAD~4

HEAD~4で4つ前のコミットまで編集できるようにする rebaseを実行するとエディターが開き以下のようになる

pick 4c161c0 hoge
pick a215c1f foo           
pick ef4e7a4 hoge
pick b11131c fuga

今回はhogeをまとめたいのでコミットの順番を変更しまとめたい箇所をpickからs(squash)に変更する

pick 4c161c0 hoge        
s ef4e7a4 hoge
pick a215c1f foo   
pick b11131c fuga

変更できたら:wqを押すとエディターが開きコミットメッセージの編集ができる

# This is a combination of 2 commits.
# The first commit's message is:

hoge

# This is the 2nd commit message:

hoge

コミットメッセージを編集する

# This is a combination of 2 commits.
# The first commit's message is:

hoge

ここで:wqで保存する
gitのログを確認すると以下のようになっている

fde0990 hoge
a215c1f foo           
b11131c fuga

もしリモートリポジトリにpushする場合はgitのコミットハッシュが変わるのでgit push --force-with-leaseを使ってpushする必要がある

参考

rebase -i でコミットをまとめる - Qiita