Git变基修改作者?

86

我很愚蠢地在一台没有配置git(没有作者或电子邮件)的机器上进行了3次提交,我想将这3个提交(尚未推送)的作者更改为应该是的。

我知道git commit --amend可以更改作者,但我如何做到这三个?我知道rebase可以更改消息。有一种方法可以更改作者吗?


如果其他人像我一样没有看到顶部的重复消息,答案在这里 https://dev59.com/73RB5IYBdhLWcg3wAjNH#1320317。 - Elijah Lynn
这不是一个重复的问题。被标记的问题针对多个提交,而这个问题只针对rebase的使用。 - SOFe
1个回答

112
您可以使用交互式变基。本帖子的答案给出了一个示例:如何更改特定提交的作者?
具体来说,您可以执行以下操作来更改一个特定的提交: git commit --amend --author="作者姓名 <电子邮件@地址.com>" --no-edit 作者要求更改特定提交的作者,但是如果您编辑所有要更改的提交,则可以使用交互式变基来更改多个提交的作者。
与交互式变基相关的其他有用技术可以在Pro Git书籍中找到:http://git-scm.com/book/en/Git-Tools-Rewriting-History,包括合并、重新排序、编辑消息等技巧。

1
由于某些原因,这似乎不起作用。它没有更改作者,只更改了消息。 - Joe Phillips
61
你可以使用git rebase BASE_BRANCH --exec 'git commit --amend --author="Author Name <email@address.com>" --no-edit'一次完成所有操作。 - DylanYoung
3
请注意,git rebase --exec ... 的技术原理是在重置后的每个提交之后运行给定的命令。@DylanYoung评论中的BASE_BRANCH应该指向您不想修改的最新提交。此后在当前分支中的所有内容都将被修改。 - Mikko Rantalainen
1
@DylanYoung的命令对我非常有效!谢谢你!(macOS catalina,git v2.32.0) - Devin Rhode
4
这段代码的作用是更新提交者姓名和邮箱,并将作者姓名和邮箱设置为相同。通过执行这个命令,可以更新提交者信息和作者信息,但不会修改提交信息的内容。 - enthusiasticgeek
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接