假设我有3次未提交的提交。现在我想更改第一次或第二次提交的提交消息(使用git commit --amend
更改第三次提交的提交消息很简单)。怎么做?
答案 0 :(得分:6)
这是强大的git rebase -i
命令的工作。另外,请参阅Git书籍的Interactive Rebasing部分。
答案 1 :(得分:5)
要回答子问题:前一次提交是否有git commit --amend
(而不仅仅是最后一次提交),您可以尝试类似的方式(尚未测试,但Colin O'Dell提及the comments为其编写了一个脚本colinodell/git-amend-old):
git checkout -b tmp
git reset --hard HEAD~2
git commit -amend
git rebase --onto tmp HEAD@{1} master
那就像:
x---x---x---x---x
^
|
(master*) (* = current branch)
git checkout -b tmp
x---x---x---x---x
^
|
(tmp*, master)
git reset --hard HEAD~2
x---x---x---x---x
^ ^
| |
(tmp*) (master)
git commit -amend
y (tmp*)
/
x---x---x---x---x
| ^
(HEAD@{1}) |
(master)
git rebase --onto tmp HEAD@{1} master
(tmp)
y---x'---x' (master*)
/
x---x---x---x---x (only referenced in reflog)