はじめに
railsでアプリを作成中にgitでプッシュした後に、コミット名を変更したい場合にどうしたらいいのか、学習した内容を記事にしました。
修正するための流れは
git commit --amend
- エディタ内でコミット名を編集
- git push -f origin リポジトリ名
の流れになります。
直前のコミットを書き換える
git commit --amend
このコマンドを使用することで、前回のコミットにファイルの追加を行ったり、コミットコメントの変更を行ったりできます。
×××××@×××××MacBook-Pro ××××× % git log
commit ×××××××××××××××××××××××××××××× (HEAD -> main, origin/main)
Author: ××××× <××××××××××××××××××××>
Date: Mon May 3 14:43:02 2021 +0900
first commit
# ここのコミット名を編集したい
まず、
×××××@×××××MacBook-Pro ××××× % git commit --amend
のコマンドを実行すると、エディタが表示されるので、insert
モードにして、コミット名を編集します。
編集が完了したら、
「ESCボタン」 からの、、、
:wq # 編集したエディタを保存するコマンド
これで、コミット名がローカル上に反映されるので、次は、リモートリポジトリに編集内容を反映させます。
強制的にリモートリポジトリを書き換える
これまでの過程で、ローカルリポジトリのコミット名の書き換えは完了しましたが、リモートリポジトリには反映されていません。
しかし、いつものように
git push origin main(master)
などと入力した場合はエラーが発生します。
これはリモートリポジトリととローカルリポジトリに不整合が生じているからです。
これを解決するために強制的にローカルブランチをリモートブランチに上書きできるコマンドを実行します。
git push -f origin リポジトリ名
これで、pushしたコミット名を編集することができます。
このコマンドは強制的にブランチを上書きするコマンドなので、使用する際は注意が必要です。