写博客的时候一直用的Sublime Text,然后用配置好的MyGitcommit
、push
,这次写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=dss886
,user.email=dss886@gmail.com
,再进行Commit,发现已经记录在Contributions Calendar中了!
三、什么样的Contribution Github才记录?
翻译一下Gihub关于Contributions的说明,希望能帮到大家,不要让辛辛苦苦写的代码被Github忽视了:)
3.1 会被记录的Contribution情形
3.1.1 Issues and pull requests
同时满足以下两个条件将会被计入Contribution
- 这个操作是在一年之内。(Calendar只显示一年之内的Contribution)
- 这个操作是针对一个独立的仓库。(在Fork的仓库中进行的操作不会被记录)
3.1.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.1.3 附加条件:如果你Commit的仓库不是你创建的,那么至少要满足以下四条之一,才会被计入Contribution
- 你是这个仓库的协作者,或者是这个版本库的拥有组织中的一员。
- 你fork过这个仓库。
- 你对这个仓库发起过pull request或者issue。
- 你对这个仓库标记了Star。
(私有仓库的Commit也会被计入Contribution,没有这个私有仓库权限的用户将看不到这个Commit的跳转链接)
3.2 Contributions未被Github计入的几个常见原因
- 进行Commits的用户没有被关联到你的Github帐号中。
- 不是在这个版本库的默认分支进行的Commit。
- 这个仓库是一个Fork仓库,而不是独立仓库。
本文首发http://www.dss886.com,转载请注明