github用户主页不显示contributions记录的问题

缘起

一直纠结为啥自己的github个人主页不显示contributions记录中的commit记录,而只显示了create repo的记录。看着那寥寥无几的绿方格,想着自己好歹也经常commit呢,这连个鼓励都看不到好伤心,今天忍不住在网上查了下,终于找到问题原因。

原因

原来是因为commit时的邮箱不知道什么时候被修改了(难道是我自己git config时不小心设置错了),然后这个被篡改的邮箱没有被关联到我的github,因此github认为这不是我自己提交的,因此不显示提交记录。

解决方法

解决方法有两个

方法一:添加这个邮箱到自己的github账户中

深度截图20170314231638.png

就是在这里添加邮箱就行了。

方法二:修改提交记录中的邮箱为已被关联的邮箱

  1. clone你需要修改commit记录的repo
git clone --bare https://github.com/user/repo.git
cd repo.git
  1. 复制以下代码,建立script.sh文件(文件名随便),并根据你的信息修改以下变量:旧的Email地址(就是commit记录中的那个),正确的用户名正确的邮件地址
#!/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

然后执行script.sh

  1. 把正确历史 push 到 github
git push --force --tags origin 'refs/heads/*'
  1. 删掉你clone的repo

至此就可以了,刷新github主页,没有意外就可以看到全部提交记录了。

总结

不显示commit记录的原因还有其他的,我这个只针对邮箱错误的原因,如不是这个原因请参考https://help.github.com/articles/why-are-my-contributions-not-showing-up-on-my-profile/

参考

推荐阅读更多精彩内容

  • 记录下为什么github 提交的时候,没有记录到 github 的那个日历上。 明明天天都有提交,但是为什么都没有...
    izhongxia阅读 2,946评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 118,012评论 14 132
  • 每天看到你的样子,总会移不开视线。我想我看向你的目光一定是灼热的,周围的人都看得出来,唯独你是那么的平静,永远都是...
    小姐姐w阅读 401评论 0 2
  • 做微商不知不觉快一个月了,在这期间我既然一部电视没看打王者玩了四五局,想想我都在干啥? 接触到微商老公...
    沐小悠可可阅读 94评论 0 1
  • 红薯 文/凹丁 想起你 我就想起了 起伏的山疙瘩 黑泥糊子 一步一趔趄的田埂 我 爱不够 恨不够的老家 没有你 也...
    凹丁阅读 32评论 0 0