目录
背景
最近频繁在 github 上提交 commit ,但是发现首页的 contributions 并没有越来越绿,查了下原因发现是因为我在 commit 时所使用的邮箱并不是 github 的登录邮箱,导致 commit 没有和我的 github 账户产生关联,所以没有被统计到 contributions 中。本文记录解决此问题的方法。
解决方案
- 克隆一个仓库
从 github 本人账户下克隆一个你要统计 contributions 的仓库到本地:
git clone --bare 仓库地址
然后进入到此仓库目录中,输入 git log
查看 commit 的邮箱地址,记录此邮箱地址,后文会用。
- 修改 commit 中的邮箱地址
在此仓库中新建一个脚本文件 run.sh ,写入如下命令:
#!/bin/sh
git filter-branch --env-filter '
OLD_EMAIL="旧的邮箱地址"
CORRECT_NAME="正确的用户名"
CORRECT_EMAIL="正确的邮箱地址"
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
其中,「旧的邮箱地址」即步骤1记录的邮箱地址,「正确的邮箱地址」即你本人 github 账户所使用的主邮箱地址,可以在 github emails 的 Primary email address
处查看此地址。
然后如下命令执行此脚本文件,该脚本会将本地 commit 中的邮箱修改为新的邮箱:
bash run.sh
- 将本地修改提交到远程
将本地修改提交到远程,以参与 contributions 统计:
git push --force --tags origin 'refs/heads/*'
此时该仓库中的 commit 已经参与到 github contributions 统计了,然后刷新 github 页面,是不是就绿油油了呢~