【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つ以上前のコミットコメントの変更は完了となります。