作者 | 普通男生
来源 | juejin.im/post/5dc0e423f265da4d2c5ea133某天突然发现自己提交了代码,但是GitHub
首页的小绿格没有增加。
一开始我以为是延迟,或者当天不能看到自己提交的贡献点,等到第二天才会有?????
查看了一下GitHub
的Commit
记录和本地的配置发现用户名与GitHub
不一致会导致不增加贡献。
因为是在公司提交代码,所以在公司配置的默认是是公司的邮箱,而不是自己的邮箱????
解决方法????
找到原因后就好解决了,最简单有两种方法:
-
修改全局默认邮箱的用户名和邮箱
git config --global user.name "ordinaryA"
git config --global user.email "353458582@qq.com"
此处要注意如果使用了
global
参数,表示你这台机器上所有的Git仓库都会默认使用这个邮箱及用户名,当然你也可以单独给某个仓库指定不同的用户名和Email地址。
-
修改单个
Git
仓库的用户名和邮箱
打开项目所在目录,bash
如下指令
cd .git
git config user.name "ordinaryA"
git config user.email "353458582@qq.com"
然后通过执行命令可以查看config
文件检查是否修改成功:
cat config
完成上述操作之后,当你再次提交代码时,就能在GitHub
上看到你的小绿格了!
大功告成????
完成以上步骤后,虽然提交代码会有绿格了,但是之前提交的怎么找回来呢?
我们只需要修改历史提交记录的提交用户名和邮箱就能够正确显示了????
首先在项目根目录下创建 email.sh
,然后写入如下代码:
#!/bin/sh
git filter-branch --env-filter '
OLD_EMAIL="alan9999@163.com"
CORRECT_NAME="ordinaryA"
CORRECT_EMAIL="353458582@qq.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
OLD_EMAIL
改成旧邮箱,查看旧邮箱可以通过git log
或在GitHub上查看提交记录CORRECT_NAME
,CORRECT_EMAIL
改成自己GitHub上的邮箱以及用户名即可
接下来执行一下脚本
./email.sh
执行完成之后使用git log
可以看到邮箱已经修改成功
本地修改后,需要推送到GitHub
上
bash
如下指令
git push origin --force --all
这时候打开GitHub
你就会发现小绿格神奇的恢复了????