【Git】修改 github 仓库 commit 的邮箱地址以统计 contributions

目录

文章目录

  • 目录
  • 背景
  • 解决方案

背景

最近频繁在 github 上提交 commit ,但是发现首页的 contributions 并没有越来越绿,查了下原因发现是因为我在 commit 时所使用的邮箱并不是 github 的登录邮箱,导致 commit 没有和我的 github 账户产生关联,所以没有被统计到 contributions 中。本文记录解决此问题的方法。

参考:github上contributions统计错误

解决方案

  1. 克隆一个仓库

从 github 本人账户下克隆一个你要统计 contributions 的仓库到本地:

git clone --bare 仓库地址

然后进入到此仓库目录中,输入 git log 查看 commit 的邮箱地址,记录此邮箱地址,后文会用。

  1. 修改 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
  1. 将本地修改提交到远程

将本地修改提交到远程,以参与 contributions 统计:

git push --force --tags origin 'refs/heads/*'

此时该仓库中的 commit 已经参与到 github contributions 统计了,然后刷新 github 页面,是不是就绿油油了呢~

你可能感兴趣的:(Git,git,github)