やり方
1. 該当コミットを指定
git rebase
で該当コミットを指定します。
直近5つのコミットから指定したい場合はこう。
$ git rebase -i HEAD~5
直近1つならこう。
$ git rebase -i HEAD~1
すると、編集画面になるので、
pick 8e2ab3a 最初のコミット
pick 5588727 コミット2回目
pick c8e517d コミット3回目
pick 8466de1 コミット3回目
pick 5533d64 コミット5回目
# Rebase 2abbcb9..5533d64 onto 8466de1 (5 commands)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup <commit> = like "squash", but discard this commit's log message
# x, exec <command> = run command (the rest of the line) using shell
# b, break = stop here (continue rebase later with 'git rebase --continue')
# d, drop <commit> = remove commit
# l, label <label> = label current HEAD with a name
# t, reset <label> = reset HEAD to a label
変更したいコミットを edit(eでもOK)
に変更します。
pick 8e2ab3a 最初のコミット
pick 5588727 コミット2回目
pick c8e517d コミット3回目
edit 8466de1 コミット3回目
pick 5533d64 コミット5回目
# Rebase 2abbcb9..5533d64 onto 8466de1 (5 commands)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup <commit> = like "squash", but discard this commit's log message
# x, exec <command> = run command (the rest of the line) using shell
# b, break = stop here (continue rebase later with 'git rebase --continue')
# d, drop <commit> = remove commit
# l, label <label> = label current HEAD with a name
# t, reset <label> = reset HEAD to a label
編集が終わったら、保存(:wqやZZなど)して閉じます。
$ git rebase -i HEAD~5
Stopped at 8466de1... hogeeeeeeeeeeeeee.md追加
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
2. 該当コミットのコメントを編集
まずは commit --amend
でコミットを編集します。
$ git commit --amend
コミット3回目
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# Date: Wed Jun 17 00:38:32 2020 +0900
編集が終わったら、保存(:wqやZZなど)して閉じます。
コミット4回目
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# Date: Wed Jun 17 00:38:32 2020 +0900
3. コミットのコメント編集を終了
rebase
で編集を終了します。
$ git rebase --continue
以下が表示されたらOK。
$ git rebase --continue
Successfully rebased and updated refs/heads/master.
4. リモートにpush!
最後に、変更したコミットをリモートへpushします。
普通のpushだと拒否られるので -f
で強制的にpush。
git push -f origin master
以上!
参考サイト