自分がコミットメッセージを間違えた時に実行する方法を備忘録として残しておきます。
記載されている内容は、プッシュする前のコミットメッセージの変更方法です。
目次
- 直前のコミットメッセージを変更する方法
- 2つ以上前のコミットメッセージを変更する方法
直前のコミットメッセージを変更する方法
まずは過去のコミットを確認しましょう。
git log --oneline
--oneline
をつけることで、以下のようにコミット番号とコミットメッセージが1列に揃った形で表示されます。
00000000 直前のコミット //ここのコミットメッセージを変更する
11111111 2つ前のコミット
22222222 3つ前のコミット
今回は、直前にコミットしたコミットメッセージを変更します。
直前のコミットを修正する場合は、--amend
オプションを使用します。
git commit --amend -m "修正後のコミットメッセージ"
--amendオプション
現在のステージの状態で直前のコミットをやり直すためのオプション。
-mをつけることで、コミットメッセージを修正できる。
もう一度git log --oneline
を叩いて実行結果を見てみましょう。
直前のコミットメッセージが修正されているはずです。
00000000 修正後のコミットメッセージ
11111111 2つ前のコミット
22222222 3つ前のコミット
2つ以上前のコミットメッセージを変更する方法
次は2つ以上前のコミットメッセージを修正します。
git log --oneline
実行して、修正したいコミットメッセージがいくつ前のコミットなのかを確認します。
git log --oneline
実行結果
00000000 直前のコミット //1つ前のコミット
11111111 2つ前のコミット // 2つ前のコミット //ここのコミットメッセージを変更する
22222222 3つ前のコミット // 3つ前のコミット
今回は2つ前のコミットメッセージを修正したいので、以下コマンドのHEAD~
の後に、2
を入力して実行します。
git rebase -i HEAD~2
実行結果、以下のように2つ目のコミットが1番上に表示されている状態で、viエディタが開きます。
pick 11111111 2つ前のコミット
pick 22222222 3つ前のコミット
# Rebase ~~~~~
# ~~~~~~~~~~~~
viエディタが開いたら、編集モードに切り替えて、コミットメッセージを修正したいコミットの左に記載されている、pick
をedit
に変更します。
変更が完了したら、編集モードを終了し、保存してviエディタを終了させます。
edit 11111111 2つ前のコミット
pick 22222222 3つ前のコミット
# Rebase ~~~~~
# ~~~~~~~~~~~~
:wq // 入力してEnter
モード切り替え
viエディタを開いた時点では、コマンドモードになっています。
キーボードの「i」(insertのi)を押すことで、編集モードに切り替わります。
編集が完了したら、「esc」を押すとコマンドモードに切り替わります。
変更を保存
編集画完了後、閲覧モードの状態で「:wq」を入力後、Enterを押すと編集内容が保存され、エディタが閉じます。
編集を保存しない場合は、「:q!」を入力することで、編集内容を破棄してエディタが閉じます。
ここまでの操作でeditに指定したコミットまで、状態が戻っていることになります。
従って、直前のコミットを修正する時に使用した、--amend
を使って、コミットメッセージを修正します。
git commit --amend -m "修正後のコミットメッセージ"
直前のコミットメッセージ変更の操作と違って、2つ以上前のコミットメッセージを修正した際は、これで終わりではありません!
以下のコマンドで作業完了です。
git rebase --containue
必ず最後に確認しましょう。
変更が反映されています。
00000000 修正後のコミットメッセージ
11111111 2つ前のコミット
22222222 3つ前のコミット
最後に
以上。
こういうのまとめてほしいとかあれば、コメントください。