git 修改之前记录的作者和邮箱

发布于 2020-07-31  327 次阅读


项目根目录保存为.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

LoneKing