一尘不染

如何更改一个特定提交的提交作者?

javascript

我想更改历史中一个特定提交的作者。这不是最后一次提交。

但我正在考虑一些事情,我通过哈希或短哈希来识别提交。


阅读 187

收藏
2022-02-06

共1个答案

一尘不染

交互式变基从历史中比您需要修改的提交更早的点开始 ( git rebase -i <earliercommit>)。在要重新设置的提交列表中,将文本从 更改为pickedit要修改的哈希的旁边。然后当 git 提示您更改提交时,使用以下命令:

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

例如,如果您的提交历史记录是A-B-C-D-E-Fas FHEAD并且您想更改 and 的作者CD那么您将…

  1. 指定

git rebase -i B

(这里是执行命令后您将看到的示例git rebase -i B

  • 如果您需要编辑A,请使用git rebase -i --root

  • C将这两个和Dfrom的行更改pickedit

  • 退出编辑器(对于 vim,这将是按 Esc 然后键入:wq)。

  • 一旦变基开始,它将首先暂停在C

  • 你会git commit --amend --author="Author Name <email@address.com>"

  • 然后git rebase --continue

  • 它会在D

  • 然后你会git commit --amend --author="Author Name <email@address.com>"再次

  • git rebase --continue

  • 变基将完成。

  • 用于使用git push -f更新的提交更新您的来源。

2022-02-06