Github不记录Contributions的问题

阅读时间 约 1 分钟

Github没有记录我的Contributions

写博客的时候一直用的Sublime Text,然后用配置好的MyGitcommitpush,这次写nForumSDK的时候,用了Eclipse集成的插件EGit,然后发现所有用Eclipsepush的Github都没有记录在Contributions里,Contributions Calendar白白的一片,太伤心了。。

Github为什么不记录

我一直在Dev分支下开发,并未merge到Master分支上,看了一下Github关于Contributions的说明,发现有这样一句话

Commits are only counted if they are made in the default branch (usually master).

只有在默认的Master分支下的Commits才能被算进去,于是我到Master分支下merge了Dev分支,发现仍然没有出现在我的Calendar中……

经过各种排查,发现了问题的所在。我在配置EGit的时候,图方便仅仅将其SSH Key设置为了MyGit的rsa_pub,其他的参数都没有修改,于是在Commit的时候,EGit自动将用户邮箱设为了dss886@我的ip地址.com,这样Github不认为Commit的用户是我……囧。

在Preference->Team->Git->Configuration中添加两条记录:user.name=dss886user.email=dss886@gmail.com,再进行Commit,发现已经记录在Contributions Calendar中了!

什么样的Contribution Github才记录?

翻译一下Gihub关于Contributions的说明,希望能帮到大家,不要让辛辛苦苦写的代码被Github忽视了:)

会被记录的Contribution情形

1. Issues and pull requests

同时满足以下两个条件将会被计入Contribution

  • 这个操作是在一年之内。(Calendar只显示一年之内的Contribution)
  • 这个操作是针对一个独立的仓库。(在Fork的仓库中进行的操作不会被记录)

2. Commits

同时满足以下四个条件将会被计入Contribution

  • Commits是在一年之内。(Calendar只显示一年之内的Contribution)
  • 进行Commits的用户被关联到了你的Github帐号中(使用SSH方式能够不输入帐号密码进行push,如果此时你Commit的帐号不在Github帐号列表中,就不会被计入Contribution)
  • 是在一个独立的版本库中进行Commit。(在Fork的仓库中进行Commit则不会被记录)
  • 是在这个版本库的默认分支(通常是Master)进行的Commit。(如果你在Dev分支下进行开发,你的Commit不会被计入Contribution,但是并不会丢失它们,一旦当你Merge到Master分支后,所有的Commit都会被重新计入。多人协作也是同理,只有被并入Master分支的Commit才会被计入,如果你的Commit在合并时被组长丢弃,在Github看来,你就白干了……)

3. 附加条件

如果你Commit的仓库不是你创建的,那么至少要满足以下四条之一,才会被计入Contribution

  • 你是这个仓库的协作者,或者是这个版本库的拥有组织中的一员。
  • 你fork过这个仓库。
  • 你对这个仓库发起过pull request或者issue。
  • 你对这个仓库标记了Star。

(私有仓库的Commit也会被计入Contribution,没有这个私有仓库权限的用户将看不到这个Commit的跳转链接)

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

  • 进行Commits的用户没有被关联到你的Github帐号中。
  • 不是在这个版本库的默认分支进行的Commit。
  • 这个仓库是一个Fork仓库,而不是独立仓库。