【Git】コミットしたメッセージを後から変更する方法をわかりやすく解説!

Gitでコミット(commit)したメッセージを後から変更する方法をご紹介します。

後からコミットしたメッセージを変更する方法は、直前コミットメッセージの変更と2以上前のコミットメッセージの変更の2種類があります。

コミットメージを間違えた!という時があると思うので覚えて起きましょう。

1.直前にコミットしたメッセージを変更する方法 (Vi方式)

1-1.git logでコミットログの確認

$ git log

まずはコミットログの確認をしましょう。

commit c35357a624194c6774fafcfaacdf030ac571b886 (HEAD -> master)
Author: User <user@test.com>
Date:   Thu Feb 8 10:05:07 2018 +0900

    second commit

commit 2cdf250ac5017206db7213ed65b1f5ccd91910ec
Author: User <user@test.com>
Date:   Thu Feb 8 10:04:22 2018 +0900

    first commit

このように以前のコミットログが表示されます。
一番上にきているものが最新のコミットです。

1-2.git commit --amendでコミットメッセージの変更

$ git commit --amend

次にコミットメッセージの変更をしてみましょう。

このようにViモードに切り替わるので、コミットの箇所をhogehogeに切り替えて見ましょう。
Viモードはキーボードのaで編集(-- INSERT --)モードに切り替わりescでコマンドモードに戻ります。コマンドモードの状態で:wqで保存して終了できます。何もしない場合は:qで閉じることができます。

commit a766f1367dc7db731f6d8d8b24a40993a8f04346 (HEAD -> master)
Author: User <user@test.com>
Date:   Thu Feb 8 10:05:07 2018 +0900

    hogehoge

commit 2cdf250ac5017206db7213ed65b1f5ccd91910ec
Author: User <user@test.com>
Date:   Thu Feb 8 10:04:22 2018 +0900

    first commit

変更できたらgit logでコミットメッセージが変更されたか確認してみましょう。
hogehogeになっていればコミットメッセージの変更は完了です。

2.直前にコミットしたメッセージを変更する方法 (簡単版)

$ git commit --amend -m "fugefuge"

実はgit commit --amendの後にメッセージをつけることで、直前のコミットメッセージを変更することができます。直前のメッセージであればこちらの方が簡単ですね!

commit 4ef7dbaccd5dd320efe84a82bd6ffca2f82af699 (HEAD -> master)
Author: User <user@test.com>
Date:   Thu Feb 8 10:05:07 2018 +0900

    fugefuge

commit 2cdf250ac5017206db7213ed65b1f5ccd91910ec
Author: User <user@test.com>
Date:   Thu Feb 8 10:04:22 2018 +0900

    first commit

git logでログを確認すると「hogehoge」から「fugefuge」に変更できていることがわかります。

3.2つ以上前のコミットメッセージの変更方法

$ git log --oneline
4ef7dba (HEAD -> master) fugefuge ← 直前
2cdf250 first commit ← ここを変更したい
f8f8126 Initial Commit

直前のコミットメッセージの変更はgit commit --amendでできましたが、ふたつ以上前のコミットメッセージの変更は一手間必要になります。

3-1.git rebase -i HEAD~○で指定した数のコミットまで戻る

$ git rebase -i HEAD~2 ← ここの数字は何個前のコミットメッセージかを指定

git rebase -i HEAD~で指定したコミットまで戻ります。

このようviエディタが開きます。

3-2.変更したいコミットをpickからeditに変更する

次にコミットメッセージを変更したいコミットの「pick」を「edit」に変更します。
変更し終わったらviモードを完了します。ここではまだコミットメッセージの変更はできません。

先ほどもご紹介しましたがviエディタの使用方法です。
a:入力モードに入る(左下が-- INSERT --)
esc:コマンドモードに入る(-- INSERT --がなくなる)
文字の入力:aの入力モードで変更する deleteで文字を消したり、好きな文字を加えたりする
:q:viエディタを終了する(コマンドモードのみ使用可能)
:q!:viエディタを強制終了する(コマンドモードのみ使用可能)
:wq:viエディタを保存して終了する(コマンドモードのみ使用可能)
:q!:viエディタを保存して強制終了する(コマンドモードのみ使用可能)

3-3.git commit --amendでコミットメッセージを変更する

$ git commit --amend -m "hogehoge"

これで先ほどeditに変更したコミットメッセージが「first commit」から「hogehoge」に変更されます。

$ git log --oneline
d8af488 (HEAD) hogehoge
f8f8126 Initial Commit

$ git log --onelineで確認すると、(HEAD)が「first commit」だった部分に移動していて、さらに「first commit」から「hogehoge」に変更されているのがわかります。

3-4.git rebase --continueで最新のコミットまで戻る

$ git rebase --continue

最後にgit rebase --continueで最新のコミットまで戻りましょう。

$ git log --oneline
ca83be3 (HEAD -> master) fugefuge
d8af488 hogehoge
f8f8126 Initial Commit

最新のfugefugeに(HEAD)が移動しているのがわかりますね。

これで2つ以上前のコミットコメントの変更は完了となります。

Git

Posted by 上級者さん