最近发现github主页中显示的小绿点贡献值和真实的commit情况对不上,发现是因为没有为git配置author和email。
如果是使用macos的git用户,author默认就是账号名称(一般和iCloud账号名称一致)
设置Git默认配置
要解决日后出现这个问题,配置全局的git 配置即可。
git config --global user.name "<USERNAME>"
git config --global user.email "<EMAIL>"
修改历史commit
修改author
如果不希望浪费之前的commit,想要修复正确的绿色贡献值显示的话,
则需要修改commit历史记录,在git项目目录下执行:
git filter-branch -f --env-filter '
if [ "$GIT_AUTHOR_NAME" = "<OLD-USERNAME>" ]
then
export GIT_AUTHOR_NAME="<NEW-USERNAME>"
export GIT_AUTHOR_EMAIL="<NEW-EMAIL>"
fi
' HEAD
记得将上面的<OLD-USERNAME>
<NEW-USERNAME>
以及<NEW-EMAIL>
替换为具体的值。
修改committer
以上方法只会修改每一个commit的author,committer仍然会显示原来的提交信息。
如果需要连同committer一起修改,只需要为上面的代码添加以下两行:
export GIT_COMMITTER_NAME="<NEW-USERNAME>"
export GIT_COMMITTER_EMAIL="<NEW-EMAIL>"
操作完以后记得确认一下信息是否修改成功,可以使用vscode打开项目,用git graph查看commit的信息。
或者使用终端执行:git log
查看提交。
提交至远端仓库
使用以下指令将修改后的值强制更新至远端仓库。
注意:无论何时使用--force
都是危险的行为,请一定要确认该操作不会覆盖未拉取的代码。
git push --force --tags origin 'refs/heads/*'
这样回到github首页就能够看到正确的绿色贡献值显示啦。