はらへり日記

腹に弾丸

Gitのコミットメッセージをまとめて修正する

前提

Shell上でコマンドを叩いて修正する人向けです。

ある日

普段、GitHubのIssue駆動開発をする際はIssueトラッカーを使いたい派なのでコミットメッセージにIssue番号をつけるようにしている。

そんなある日、直近の6コミットぐらいのIssue番号を間違えて修正したかった時にこの方法が役立ったので書く。

複数コミットのコミットメッセージのみを修正する

こののみの部分が意外とキモで、よく見かける「git rebase -iしてsquashすればいいよ!」よりも少し楽にできる。

squashオプションの場合、コミットメッセージだけでなくコミットそのものも改変することができる。

言い換えれば1コミット1コミットたどる際にまごころを込めてコミットをし直し、rebase --continueしなければならない。

本当に便利な機能だがコミットメッセージだけ直したいときは少しばかりめんどくさい。

rewardオプションを使用する

そこでsquashでなく、rewardオプションを使いましょう。

使い方はsquashの時とほとんど同じです。

手順としては以下のとおり。

  1. git rebase -iする

  2. コミットメッセージを変えたい行のみpickreward、もしくはrに書き換える

  3. エディタを閉じる

  4. 指定したコミットメッセージのみ延々と表示されるので直しては保存、直しては保存する

gifにするとこんな感じ。

以上コミットメッセージまとめて修正マンでした٩(ˊᗜˋ*)و