项目根目录保存为.sh文件,修改里面的OLD_EMAIL,CORRECT_NAME,CORRECT_EMAIL三个参数,然后直接执行即可
#!/bin/sh
git filter-branch --env-filter '
OLD_EMAIL="旧邮箱"
CORRECT_NAME="正确名字"
CORRECT_EMAIL="正确邮箱"
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
执行结束后执行git log命令查看日志是否修改成功,如果执行失败,执行以下命令后再执行上面的.sh文件
git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD
最后,push一下
git push origin --force --all