はじめに
Gitで作業中に誤ったコミットメッセージをpushしてしまうことがあります。
その場合、リモートリポジトリの履歴を修正することができます。
本記事では、誤ったコミットメッセージを修正する方法をステップごとに説明します。
コミットメッセージの修正方法
今回は、以下のような誤ったコミットメッセージを修正していきます。
"[add]実装した内容"を記載したはずが、"[実装した内容]"のままリモートブランチに
pushしてしまいました
1. インタラクティブリベースを開始する
まず、修正したいコミットがリモートリポジトリに反映されている場合、そのコミットを編集するためにインタラクティブリベースを使用します。対象のコミットから遡ってリベースを行います。
コミット履歴を確認するために、git log --oneline コマンドを実行します。
git log --oneline
今回は、c59f733 のメッセージを修正したいので、次のコマンドを実行します:
git rebase -i c59f733^
今回は Git のコミットハッシュを指定しましたが、下記のコマンドでも実行可能です:
git rebase -i HEAD~N
N は修正したいコミットの数を指定します。
例えば、最後の4つのコミットを対象に修正する場合は HEAD~4 と指定します。
2.リベース対象のコミットを選択する
エディタが開いたら、vimで修正したいコミットの行を「pick」→「reword」に変更します。reword
はそのコミットメッセージのみを修正するオプションです。
pickを
rewordへ変更します。その後、Esc キーを押した後に :wq と入力します。
3. コミットメッセージを修正する
エディタが進行すると、修正したいコミットメッセージが表示されます。
ここで、誤って記載したメッセージを修正します。
最初に表示されるのは次のような状態です:
ここで、メッセージを"[add]実装した内容"に変更します。
以下の通りに修正が完了したら、Esc キーを押した後に :wq と入力し、エディタを保存して終了します。この操作によって、コミットメッセージが修正されます。
4.リベースの結果を確認
[ユーザー情報の取得、更新、削除機能のエンドポイントを実装] → [add]ユーザー情報の取得、更新、削除機能のエンドポイントを実装へ変更できていることを確認できました
5.強制的にリベース結果を pushする
意図した通りにコミットメッセージが修正されましたので、リモートに変更を反映させるために、以下のコマンドを実行します。リベース後、リモートに強制的にプッシュする場合は、--force オプションを使います。
git push --force
修正後、リモートリポジトリにもきちんとコミットメッセージが反映されていることが確認できます。
おわりに
コミットメッセージを修正する際は慎重に行い、pushする前に確認しましょう