在历史记录中比需要修改的提交早一点的交互式重基(git rebase -i <earliercommit>)。在重定向提交的列表中,将文本更改为pick到edit在要修改的散列旁边。然后,当git提示您更改提交时,请使用以下命令:git commit --amend --author="Author Name <email@address.com>"例如,如果提交历史记录是A-B-C-D-E-F带着F如HEAD,而您想要更改C和D那你就.。指定git rebase -i B (下面是执行git rebase -i B命令)如果你需要编辑A,使用git rebase -i --root为这两种情况更改行C和D从…pick到edit一旦重基开始,它将首先在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若要使用更新的提交更新源,请执行以下操作。
GitHub文档包含一个脚本,用于替换分支中所有提交的提交者信息。.#!/bin/shgit filter-branch --env-filter '
OLD_EMAIL="your-old-email@example.com"
CORRECT_NAME="Your Correct Name"
CORRECT_EMAIL="your-correct-email@example.com"
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_COMMITTER_NAME="$CORRECT_NAME"
export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_AUTHOR_NAME="$CORRECT_NAME"
export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags