Git改变了不推压提交的作者
这个问题在这里已经有了答案:
已经有了这个答案
使用交互式Rebase
你可以做
git rebase -i -p <some HEAD before all of your bad commits>
然后在rebase文件中将所有不良提交标记为“编辑”。 如果您还想更改第一次提交,则必须将其手动添加为rebase文件中的第一行(按照其他行的格式)。 然后,当git要求您修改每个提交时,请执行
git commit --amend --author "New Author Name <email@address.com>"
编辑或关闭打开的编辑器,然后执行
git rebase --continue
继续进行重组。
你可以跳过在这里完全打开编辑器,方法是追加--no-edit
这样命令就是:
git commit --amend --author "New Author Name <email@address.com>" --no-edit &&
git rebase --continue
单一提交
正如一些评论者指出的,如果你只是想改变最近的提交,那么rebase命令就没有必要了。 做就是了
git commit --amend --author "New Author Name <email@address.com>"
这会将作者更改为指定的名称,但提交者将在git config user.name
和git config user.email
设置为您的配置用户。 如果你想将提交者设置为你指定的东西,这将设置作者和提交者:
git -c user.name="New Author Name" -c user.email=email@address.com commit --amend --reset-author
关于合并提交的注意事项
我最初的回应有一个小小的缺陷。 如果<some HEAD before all your bad commits>
当前HEAD
和<some HEAD before all your bad commits>
之间存在任何合并提交,那么git rebase
会将它们压扁(顺便说一句,如果使用GitHub pull请求,将会出现大量合并在你的历史中提交)。 这往往会导致非常不同的历史记录(因为重复的更改可能会“重新发布”),并且在最糟糕的情况下,它可能会导致git rebase
要求您解决困难的合并冲突(这可能已在合并提交中解决)。 解决的办法是使用-p
标志来git rebase
,这将保留你的历史的合并结构。 git rebase
的联机帮助页警告使用-p
和-i
会导致问题,但是在BUGS
部分中,它说“编辑提交并重新提交它们的提交消息应该可以正常工作。”
我已经添加了-p
到上述命令。 对于只更改最近提交的情况,这不是问题。
在这篇文章中:更改Git中多个提交的作者和提交者姓名和电子邮件
链接地址: http://www.djcxy.com/p/28507.html上一篇: Git change author of not pushhed commits
下一篇: How to credit contributions to another account for github?