Git提交至Github无法统计到Commit解决方法
起因
最近一直用IDEA写东西然后用Git提交到Github仓库,一开始还没发现有什么问题,但是这几天我关注了下Profile上的Contribute统计发现一连好多天都没有Commit记录,这我就奇了怪了,我这么长时间的Commit都跑到哪儿去了,我一看Github的记录才发现提交的用户不显示头像,我才知道因为本地用户名和Github用户名不一致才导致贡献没有统计到自己的账号上.
修改本地Git信息
git config --global user.email #查看邮箱
git config --global user.name #查看用户名
然后去Github上看看你绑定的邮箱以及用户名是不是对应的
可以在这里查看绑定的邮箱,如果还没有绑定的话也可以在此处绑定https://github.com/settings/emails
注意用户名不是Public Profile页面设置的Name,而是要看Username
也就是点开头像后最上面一条"Signed in as"后面的那个
现在根据Github上的信息把本地的用户名和邮箱改成和Github一样
git config --global user.email "example@gmail.com" #修改邮箱
git config --global user.name "Username" #修改用户名
修改Commit记录以及仓库归属
如果你本地Git信息与Github上不符,而在新建仓库时不是去Github创建的,比如用IDEA的时候直接在Github上共享,这种情况下会使用本地Git信息来进行创建,导致就连仓库都不是自己的(悲
这时候也可以将仓库归属改成我们自己,使用以下命令
git filter-branch -f --env-filter '
下一行出现>>>的前缀后输入以下命令:
if [ "$GIT_AUTHOR_NAME" = "GitName" ] #匹配原用户名
then
export GIT_AUTHOR_NAME="GithubName" #更改后的用户名
export GIT_AUTHOR_EMAIL="example@gmail.com" #更改后的邮箱
fi
' HEAD
然后回车执行,等命令执行完成
之后再去Github查看就发现仓库所属已经成功变成自己了
接下来修改之前所有未正确提交的Commit
代码和上面差不多,用法也一样,参考上面使用就行了
git filter-branch -f --env-filter '
if [ "$GIT_COMMITTER_NAME" = "GitName" ] #匹配原用户名
then
export GIT_COMMITTER_NAME="GithubName" #更改后的用户名
export GIT_COMMITTER_EMAIL="example@gmail.com" #更改后的邮箱
fi
' HEAD
如果你待更改的Commit记录比较多可能需要多等一会
注意这个时候更改的Commit不会立即在Github上生效,我们需要Push一下
首先保证本地没有更改但尚未提交的文件,如果有请先提交
之后使用以下命令强制Push到Github
git push -f origin master
如果你的分支不一样自行改成对应的分支即可
然后Github上的所有之前交错的Commit记录就都变成自己的了,头像也可以正常显示出来了
最后
完成这一切之后Profile页面的Commit统计就可以正常显示出来了,之前因为错误提交导致灰色的小绿点也变得正常了,并且由于已经修改了Git用户的全局配置,之后再进行提交的时候也就不会出现贡献不显示的情况了.