Git设置旧邮箱与现邮箱不一致问题

设置名字和邮箱
git config user.name 'lhr' git config user.email 'lhr@qq.com'

工程根目录创建email.sh文件
粘贴以下代码
#!/bin/sh

git filter-branch --env-filter '

OLD_EMAIL="fphd_xian_lufei@fphd"
CORRECT_NAME="sy-records"
CORRECT_EMAIL="52o@qq52o.cn"

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

  把OLD_EMAILCORRECT_NAMECORRECT_EMAIL改成自己的新旧邮箱用户名即可

  然后我们来执行一下这个.sh文件: ./email.sh

 Linux/Mac下需要赋予执行权限: chmod +x email.sh


git日志较多执行时间会长,成功后再查看git log可以看到已经修改成功

如果执行失败的话,执行一下这段命令
git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD

 

  再运行./email.sh脚本

  这时候虽然本地修改成功了,但是你还没有推送到远程

  所以再执行一下命令

git push origin --force --all

原创文章采用CC BY-NC-SA 4.0协议进行许可,转载请注明。转载自:修改Git全部Commit提交记录的用户名Name和邮箱Email
 

 
posted @ 2018-10-22 18:35  凹润之之之  阅读(1415)  评论(0编辑  收藏  举报