ローカルリポジトリでのコメント変更方法についてまとめる。
直前のコミットを変更する
‘–amend’ オプションで変更する。
$ git commit --amend -m '変更後のコメント'
$ git log --oneline
1111111 (HEAD -> test) 変更後のコメント
2222222 a
3333333 (origin/master, master) first
任意のコメントを修正する
下記のコミットログがあったとする。
$ git log --oneline
0d1240b (HEAD) e
0af6fd9 d
877e98b c
c057698 b
...
この時に2つ前のコミット(877e98b)を変更したい場合は ‘git rebase’ で変更を行う。
「HEADから何番目のコミットか」と言う指定方法もあるが、自分は下記のようにコミットIDを指定して変更している。
コミットIDは「変更したいコミットの直前のコミットID」を指定する。
$ git rebase -i c057698
指定するとエディタが開くので、該当のコミットに対しての操作を指定する。
e 26b9f9c c <-- ここを指定
pick 177d8e8 d
pick dee68e2 e
# Rebase c057698..dee68e2 onto c057698 (3 commands)
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
...
エディタを閉じると下記のメッセージが表示され、 ‘git commit –amend’ で変更できる旨が表示される。
Stopped at 26b9f9c... c
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
コメントを編集する。
$ git commit --amend -m 'c modified'
リベース処理は完了していない(この時点だと停止している)ので、コメント変更後にリベース処理を再開させる。
$ git rebase --continue
リベースが完了するとコメント変更処理が完了している。
$ git log --oneline
cf8b47e (HEAD -> test) e
1f71327 d
975324f c modified
c057698 b
...
rebaseでの操作方法
‘git rebase’ コマンド実行後の操作の指定方法はエディタ上のコメントに記載されている。
※()内に日本語で記載。
# Commands:
# p, pick = use commit(コミットを利用する)
# r, reword = use commit, but edit the commit message(コミットを利用するが、コミットメッセージを編集)
# e, edit = use commit, but stop for amending(コミットを利用するが、コミットを修正する(ステージにあるが、git commit されていない状態))
# s, squash = use commit, but meld into previous commit(コミットを利用するが、直前のコミットに統合する)
# f, fixup = like "squash", but discard this commit's log message(squashと似ているが、コミットメッセージを破棄する)
# x, exec = run command (the rest of the line) using shell(この行の末尾に指定したシェルコマンドを実行)
# d, drop = remove commit(コミットを削除する)