LoginSignup
0
0

More than 1 year has passed since last update.

コミットメッセージの変更をする

Last updated at Posted at 2021-07-03

はじめに

コミットメッセージの履歴の一覧を目にすると些細な表現の違いが気になってしまった。変更方法がわからなかったので改めてコミットメッセージの操作について触れてみる。

直前のコミットメッセージを変更する

#直前のコミットメッセージの変更
git commit --amend

#ワンラインでのメッセージの変更
git commit --amend -m "変更メッセージ"

これは直前のコミットまでを修正するコマンド。

過去に遡りコミットメッセージを変更する

git log --onelineとコマンドを叩いて、下記のようなコミット履歴があるとする。

#ハッシュID   コミットメッセージ
f234304 (HEAD -> master, origin/master, origin/HEAD) pre-commitの追加
1fb1c3b Rubocopの追加
1328f68 RSpecの実装
fc36a2b platform を追加
ce96219 init

上が最新のコミット履歴。
左のf234304がコミットのハッシュID。
右のHEADは現在いるブランチ。
XXの追加とされているのがコミットメッセージ。

今回はRSpecの実装を追加に変更したい。

#HEADから指定の位置までを指定
git rebase -i HEAD~3

#ハッシュIDで位置を指定
git rebase -i 1328f68

HEAD~3とは最新のコミット履歴の上から3番目まで、という意味。
1328f68はそのまま、その位置を指定している。

vimエディッタが開くので下記の手順で記述を修正する。

#変更前
pick 53fac6e RSpecの実装
pick f997d47 Rubocopの追加
pick 8e43d8f pre-commitの追加

#変更後
edit 53fac6e RSpecの実装
pick f997d47 Rubocopの追加
pick 8e43d8f pre-commitの追加

iキーを押してインサートモードに切り替え
②変更したいコミットメッセージのpickeditに変更
Escキーを押してコマンドモードに切り替え
:wpキーで保存して終了

#変更したいメッセージを入力。
git commit --amend -m "RSpecの追加"

最後に最初で説明したコマンドを叩いて完了。

8e43d8f (HEAD -> master) pre-commitの追加
f997d47 Rubocopの追加
53fac6e RSpecの追加
fc36a2b platform を追加
ce96219 init

git log --onelineで確認して変わっていればOK。
最後にgit rebase --continueを叩いて編集を終了させて完了。

GitHubのコミットメッセージの変更

上記の変更を行った場合、ローカルとリモートで履歴に違いが出てしまっているのでpushできない。

#push時のエラー
To https://github.com/XXXXXX/sample_app.git
 ! [rejected]        HEAD -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/XXXXXX/sample_app.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

git push origin HEADが拒否されてしまうので、-fオプションをつけて強制実行。

git push -f origin HEAD

これでGitHub上のコミットメッセージも変更されているはず。
今回のケースは個人のリポジトリを変更しているので気にせず-fオプションをつけてみたが、共同開発していた場合などはちょっと怖いやり方らしいので注意。

参考元

Gitのコミットメッセージを後から変更する方法をわかりやすく書いてみた
過去にリモートへpushしたコミットのコメントを変更してみる

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0