如何编辑git中任何提交的提交消息?
这个问题在这里已经有了答案:
为了反弹这个子问题:是否有一个git commit --amend
为之前的提交(而不仅仅是最后一个提交),你可以尝试类似的东西(尚未测试,但Colin O'Dell在写过评论中提到它的脚本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)
这是强大的git rebase -i
命令的工作。 此外,请参阅Git书籍的交互式重新激活部分。