github上contributions统计错误

为什么你的github上contributions那么少或者不更新

欢迎访问我的博客,祝码农同胞们早日走上人生巅峰,迎娶白富美~~~

前段时间还没注意,今天去看了下我的contributions,结果令我惊讶,统计的只有20个,然后我去查了什么会产生contributions,结果更匪夷所思,上面明确室友写到自己的仓库自己的commit是会产生contributions的,这么一想,我仅仅commit了也至少几百次吧,怎么就只有20呢?下面是研究和解决问题过程~~

详情见官网https://help.github.com/articles/why-are-my-contributions-not-showing-up-on-my-profile/,如果对官网纯英文理解不深,请看我本篇人类的语言

基本概念

想必能搜到这文章的老铁们,大概是对github已经有一定的了解了,那么什么是contributions呢?

下面来自官网的官方说法:

Your GitHub profile shows off your pinned repositories as well as a graph of your repository contributions over the past year.

人类的语言:

就是在github库(repository)中所做的贡献统计,那么怎么才能有贡献呢?

什么操作会统计在contributions

Issues 和 pull requests

需要满足:

1. 一年之内
2. 独立的仓库,不能是`fork`来的

commits

需要满足:

  1. 一年之内
  2. commits使用的email地址是与你的Github账号相关联的
  3. 独立仓库,不是fork来的
  4. 这些commits是在
    1. 默认分支(通常是master)
    2. gh-pages分支(包含 Project Pages sites 的仓库)

Contributions未被Github计入的几个常见原因

  1. 进行Commits的用户没有被关联到你的Github帐号中,可能是github邮箱设置错误,或者commit用的邮箱和github主邮箱不一致
  2. 不是在这个版本库的默认分支进行的Commit
  3. 仓库是Fork仓库,不是独立仓库

排查

这里以邮箱错误为例,因为我的也是这个原因,直接把处理过程写上了

  1. 查询commit的邮箱

    将你的没有统计commitscontributions中的仓库版本历史记录都克隆到本地,并cd到本地仓库根目录下,git log查询历史记录邮箱

1
2
3
git clone --bare "这里写你的仓库地址"
cd 克隆到本地的文件夹的名字(一般是xxx.git)
git log // 查询以前commit的时候用的邮箱
  1. github个人资料中看自己的主邮箱

    登录,右上角头像点击有个菜单,菜单里有个settings点击,左边找到Emails,看下图中英文

Primary email address

formanW@aliyun.com will be used for account-related notifications and for web-based GitHub operations (e.g. edits and merges).

翻译成汉语:

主电子邮件地址

formanW@aliyun.com将用于与帐户相关的通知和基于网络的GitHub操作(例如编辑和合并)。

githubemail

  1. 比对下你commit的邮箱和主电子邮箱是否一样,不一样的话,就是这原因无疑了

解决方案

  1. 在你刚才克隆下来的仓库中新建一个文件script.sh,将如下代码粘贴进去
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/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. 直接在本地仓库中,双击这个script.sh脚本运行,会弹出来一个控制面板,上面就是更新的历史记录
  2. 完成2步骤之后,在本地仓库根目录中运行以下命令上传正确的历史记录到giehub
1
git push --force --tags origin 'refs/heads/*'
  1. 删掉刚才克隆的下来的本地仓库
  2. 至此,去你的github contributions看看,统计的数量就正常了

正确设置github邮箱和用户名

1
2
git config --global user.email "你的邮件地址"
git config --global user.name "你的Github用户名"

设置之后,就可以开心的进行以后的github提交了,妈妈再也不担心github没贡献了

本文标题:github上contributions统计错误

文章作者:王工头

发布时间:2019年01月19日 - 16:32:08

最后更新:2019年01月25日 - 12:29:43

原始链接:https://qqqww.com/github上contributions统计错误/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------本文结束感谢大佬们的阅读-------------