How to change the message of an old (local) commit?
我的承诺如下:
1 2 3 4 5 6 7 8 9 10 11 12 | alex@alex-M52AD-M12AD-A-F-K31AD:~/node/project$ git log commit 050e4417634300e724b8e0c29bb8b7a240a9a996 Author: alexcheninfo Date: Fri Feb 12 12:55:38 2016 +0800 Rename documents commit 637bd5ac976118d7e0fb3bf5f2bab950ce0ebb66 Author: alexcheninfo Date: Fri Feb 12 11:29:01 2016 +0800 Make sidenav a component |
我想更改
交互式钢筋网通常是最简单的方法:
这将在每次提交时打开编辑器,因为在一行中提到了提交。对于每个提交,您可以选择修改它的方式;选择(保持原样)、编辑、改写(仅编辑提交消息)、挤压(将该提交与前面的提交合并为一个提交消息和一个提交消息)或修复(如挤压,但忽略第二个提交消息)。您还可以在执行此操作时重新排序或删除提交。
对于您的问题,您希望为所讨论的提交选择"改写",然后您将有机会编辑消息。
I want to change the commit message of Make sidenav a component.
I thought of usinggit commit -ammend but I think it can only be used to change the message of the last commit?
号江户十一〔一〕号
这只会更新您的
找到您想要的提交,将pick改为
现在,当git停止所需的提交时,使用
这里也没有什么选择。
例如,可以使用此行更新所需的字符串:
1 | git filter-branch -f --msg-filter 'sed"s/...//g"' -- --all |
或者这个脚本(这个脚本修改提交者数据)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # Loop over all the commits and use the --commit-filter # to change only the email addresses git filter-branch --commit-filter ' # check to see if the committer (email is the desired one) if ["$GIT_COMMITTER_EMAIL" ="<Old Email>" ]; then # Set the new desired name GIT_COMMITTER_NAME="<New Name>"; GIT_AUTHOR_NAME="<New Name>"; # Set the new desired email GIT_COMMITTER_EMAIL="<New Email>"; GIT_AUTHOR_EMAIL="<New Email>"; # (re) commit with the updated information git commit-tree"$@"; else # No need to update so commit as is git commit-tree"$@"; fi' HEAD |
号
git commit-amend只能更改最后一次提交。您应该使用git-rebase-i在提交历史记录中选择和编辑提交。