欢迎访问我的博客https://qqqww.com/,祝所有码农同胞们早日走上人生巅峰,迎娶白富美~~
1 前言
前段时间还没注意,今天去看了下我的
contributions
,结果令我惊讶,统计的只有20个,然后我去查了什么会产生contributions
,结果更匪夷所思,上面明确室友写到自己的仓库自己的commit是会产生contributions
的,这么一想,我仅仅commit
了也至少几百次吧,怎么就只有20呢?下面是研究和解决问题过程~~
2 基本概念
想必能搜到这文章的老铁们,大概是对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)中所做的贡献统计,那么怎么才能有贡献呢?
3 什么操作会统计在contributions
Issues 和 pull requests
需要满足:
- 一年之内
- 独立的仓库,不能是
fork
来的
commits
需要满足:
- 一年之内
- commits使用的email地址是与你的Github账号相关联的
- 独立仓库,不是
fork
来的- 这些
commits
是在
- 默认分支(通常是master)
- 在
gh-pages
分支(包含 Project Pages sites 的仓库)
4 Contributions未被Github计入的几个常见原因
- 进行Commits的用户没有被关联到你的Github帐号中,可能是
github
邮箱设置错误,或者commit
用的邮箱和github
主邮箱不一致- 不是在这个版本库的默认分支进行的Commit
- 仓库是
Fork
仓库,不是独立仓库
4.1 排查
这里以邮箱错误为例,因为我的也是这个原因,直接把处理过程写上了
-
查询
commit
的邮箱将你的没有统计
commits
到contributions
中的仓库版本历史记录都克隆到本地,并cd
到本地仓库根目录下,git log
查询历史记录邮箱
git clone --bare "这里写你的仓库地址"
cd 克隆到本地的文件夹的名字(一般是xxx.git)
git log // 查询以前commit的时候用的邮箱
-
去
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操作(例如编辑和合并)。
- 比对下你
commit
的邮箱和主电子邮箱是否一样,不一样的话,就是这原因无疑了
4.2 解决方案
- 在你刚才克隆下来的仓库中新建一个文件
script.sh
,将如下代码粘贴进去
#!/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
脚本运行,会弹出来一个控制面板,上面就是更新的历史记录 - 完成2步骤之后,在本地仓库根目录中运行以下命令上传正确的历史记录到giehub
git push --force --tags origin 'refs/heads/*'
- 删掉刚才克隆的下来的本地仓库
- 至此,去你的
github contributions
看看,统计的数量就正常了
4.3 正确设置github
邮箱和用户名
git config --global user.email "你的邮件地址"
git config --global user.name "你的Github用户名"
设置之后,就可以开心的进行以后的github
提交了,妈妈再也不担心github
没贡献了
5 参考文章
- github官网中的说法,如果对官网纯英文理解不深,请看我本篇人类的语言