github上contributions统计错误

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

欢迎访问我的博客https://qqqww.com/,祝所有码农同胞们早日走上人生巅峰,迎娶白富美~~

前段时间还没注意,今天去看了下我的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查询历史记录邮箱

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

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

Primary email address

[email protected] will be used for account-related notifications and for web-based GitHub operations (e.g. edits and merges).

翻译成汉语:

主电子邮件地址

[email protected]将用于与帐户相关的通知和基于网络的GitHub操作(例如编辑和合并)。

githubemail

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

解决方案

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

正确设置github邮箱和用户名

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

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

猜你喜欢

转载自blog.csdn.net/weixin_43307658/article/details/86629395
今日推荐