我想更改历史中一个特定提交的作者。这不是最后一次提交。
但我正在考虑一些事情,我通过哈希或短哈希来识别提交。
交互式变基从历史中比您需要修改的提交更早的点开始 ( git rebase -i <earliercommit>)。在要重新设置的提交列表中,将文本从 更改为pick您edit要修改的哈希的旁边。然后当 git 提示您更改提交时,使用以下命令:
git rebase -i <earliercommit>
pick
edit
git commit --amend --author="Author Name <email@address.com>" --no-edit
例如,如果您的提交历史记录是A-B-C-D-E-Fas F,HEAD并且您想更改 and 的作者C,D那么您将…
A-B-C-D-E-F
F
HEAD
C
D
git rebase -i B
(这里是执行命令后您将看到的示例git rebase -i B
)
如果您需要编辑A,请使用git rebase -i --root
A
git rebase -i --root
C将这两个和Dfrom的行更改pick为edit
退出编辑器(对于 vim,这将是按 Esc 然后键入:wq)。
:wq
一旦变基开始,它将首先暂停在C
你会git commit --amend --author="Author Name <email@address.com>"
git commit --amend --author="Author Name <email@address.com>"
然后git rebase --continue
git rebase --continue
它会在D
然后你会git commit --amend --author="Author Name <email@address.com>"再次
变基将完成。
用于使用git push -f更新的提交更新您的来源。
git push -f