Git rebase 更改作者? [复制]

Posted

技术标签:

【中文标题】Git rebase 更改作者? [复制]【英文标题】:Git rebase change author? [duplicate] 【发布时间】:2013-04-19 12:39:53 【问题描述】:

所以我愚蠢地在没有为 git 配置的机器上进行了 3 次提交(没有作者或电子邮件),我想将这 3 次提交(没有被推送)的作者更改为他们应该的样子。

我知道git commit --amend可以改作者,但是怎么改成3呢?我知道变基可以改变消息。有没有办法换作者?

【问题讨论】:

如果其他人没有像我一样在顶部看到重复的消息,答案就在这里***.com/a/1320317/292408 这不是一个重复的问题。标记的问题针对 multiple 提交,而此问题仅针对 rebase 的使用。 【参考方案1】:

您可以使用交互式变基。这篇文章的答案给你一个例子: How to change the commit author for one specific commit?.

特别是,您可以执行以下操作来更改一个特定的提交:

git commit --amend --author="Author Name <email@address.com>" --no-edit

作者要求在特定提交时更改作者,但如果您edit您希望更改的所有提交,则可以使用交互式变基来更改多个提交的作者。

其他与交互式变基相关的潜在有用技术可以在 Pro Git 书中找到 http://git-scm.com/book/en/Git-Tools-Rewriting-History,包括挤压、重新排序、编辑消息等。

【讨论】:

您参考的 Pro Git 章节也提到使用 git filter-branch --commit-filer 来做同样的事情,但除非您精通 bash 脚本,否则它可能比交互式 rebase 更难使用。 由于某种原因,这似乎不起作用。不是改变作者,只是改变信息 你应该可以通过git rebase BASE_BRANCH --exec 'git commit --amend --author="Author Name <email@address.com>" --no-edit'一次完成所有操作 请注意,git rebase --exec ... 在技术上通过在重新定位分支中的每次提交后运行给定命令来工作。 @DylanYoung 评论中的 BASE_BRANCH 应该指向您不想修改的最新提交。当前分支中之后的所有内容都将被修改。 @DylanYoung 的命令非常适合我!谢谢! (macOS catalina, git v2.32.0)

以上是关于Git rebase 更改作者? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

合并代码还在用 git merge?我们都用 git rebase

合并代码还在用git merge吗?我们都用git rebase!

sh Git rebase不会更改提交时间戳

如何计算作者在 git 中两个版本之间更改的行数?

使用 `git rebase` 更改旧的提交消息

text git更改作者信息