我想更改历史记录中某个特定提交的作者。不是最新的提交。
交互式地从历史记录中较早的一个点开始进行变基(git rebase -i <earliercommit>
)。在被重新基化的提交列表中,将需要修改的提交哈希旁边的文本从“pick”改为“edit”。然后当 git 提示您更改提交时,使用以下命令:
git commit --amend --author="Author Name <[email protected]>" --no-edit
例如,如果您的提交历史记录为 A-B-C-D-E-F
,其中 F
是 HEAD
,并且您想更改 C
和 D
的作者,那么您需要执行以下操作:
- 指定
git rebase -i B
(执行git rebase -i B
命令后,您会看到什么样的输出)- 如果要编辑
A
,请使用git rebase --root
- 如果要编辑
- 将
C
和D
的行从pick
改为edit
- 退出编辑器(对于 vim,这将是按 Esc 键,然后输入
:wq
)。 - 一旦开始变基,它首先会在
C
处暂停。 - 您需要执行
git commit --amend --author="Author Name <[email protected]>"
- 然后执行
git rebase --continue
- 它又会在
D
处暂停。 - 然后再次执行
git commit --amend --author="Author Name <[email protected]>"
- 再执行
git rebase --continue
- 变基将完成。
- 使用
git push -f
更新您的源与更新的提交。