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

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

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

【问题讨论】:

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

标签: git


【解决方案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)
猜你喜欢
  • 2018-12-26
  • 1970-01-01
  • 2013-12-23
  • 1970-01-01
  • 2019-01-11
  • 2017-09-22
  • 1970-01-01
  • 2016-05-26
  • 2021-05-18
相关资源
最近更新 更多