为了 github 的打卡活动 震惊!github打卡薪资竟然可以翻倍 ;
最早写的统计程序是抓取个人面板的贡献度 html 统计提交的次数;
有些童鞋明明提交了代码;
即便爱上了野马;
也没有一点的绿;
检查后发现原因是 git 设置的邮箱和用户名跟 github 网站的不一致;
或者当我们换邮箱了;
想把已经提交过的 commit 的邮箱和用户名改成新的;
创建个测试项目 test 演示下;
初始提交是使用的用户名为:shuaibai ;
邮箱为:shuaibai@baijunyao.com ;
把用户名改为 baijunyao ;
git config user.name 'baijunyao'
把邮箱改为:baijunyao@baijunyao.com
git config user.email 'baijunyao@baijunyao.com'
随便提交个 commit ;
我们现在来把 log 中的这个 shuaibai 改成 baijunyao ;
这时候就可以用下面的脚本代码了;
#!/bin/sh
git filter-branch --env-filter '
OLD_EMAIL="shuaibai@baijunyao.com"
CORRECT_NAME="baijunyao"
CORRECT_EMAIL="baijunyao@baijunyao.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
在项目根目录下创建 email.sh 写入上面这段代码;
把 OLD_EMAIL 、CORRECT_NAME 、 CORRECT_EMAIL 改成自己的新旧邮箱用户名即可;
赋予执行权限;
chmod +x email.sh
linux 和 mac 命令行下运行 windows 在 git bash 下运行 sh ;
./email.sh
如果 commit 比较多的话执行的时间会比较长;
再查看 git log 可以看到已经修改成功;
如果没有效果就多执行几次;
再不行添加新的commit 再执行;
如果遇到如下错误 :
Cannot create a new backup. A previous backup already exists in refs/original/ Force overwriting the backup with -f
则执行如下命令;
git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD
再运行 ./email.sh
脚本 ;
这时候虽然本地改成功了;
但是 github 或者 gitee 平台上还需要覆盖下;
git push origin --force --all
git push origin --force --tags
本文为白俊遥原创文章,转载无需和我联系,但请注明来自白俊遥博客https://baijunyao.com 欢迎捐赠赞赏加入组织创建QQ群及捐赠渠道
最新评论