Github为什么没有记录你的Contributions

起因

今天看了下github,前几天commit的都没有记录,找了下原因,发现原来自己用的是公司项目commit的时候的邮箱,所以没有被记录。

如何排查

你可以在你的本地repo里用git log命令查看commit记录上的个人邮箱是否正确,我就是因为之前用的全局配置,都是[email protected] ,但是其实我github上的邮箱是163的,所以Github就会认为这些commits都不是你提交的。

补救措施

以下为转载的解决办法。

  1. Mac、Linux下打开Terminal,Windows下打开命令提示符(command prompt)
  2. 给你的repo创建一个全新的clone
git clone --bare https://github.com/user/repo.git
cd repo.git
  1. 复制粘贴脚本,并根据你的信息修改以下变量: 旧的Email地址, 正确的用户名, 正确的邮件地址
#!/bin/sh
git filter-branch --env-filter '
OLD_EMAIL="旧的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. 执行脚本
  2. git log 检查是否改过来了
  3. 把正确历史 push 到 Github
git push --force --tags origin 'refs/heads/*'
  1. 删掉刚刚临时创建的 clone
rm -rf repo.git

参考

结束!

你可能感兴趣的:(Github为什么没有记录你的Contributions)