最近在给同学看我的github时,突然发现我的Contributions Graph上一篇空白居然只有两三个小绿块,因为自己平时在公司工作的记录会显示在自己的Contribution Graph上,所以一直没发现个人repo的commit记录都没有被记录,于是外事不决问Google,发现原来是因为git初始化设定时没有设定正确的用户名和邮箱(主要是邮箱),具体可以参考Github官方写的help文档

为什么你的 Contributions 没有在你的 Profile 里显示?

那么问题来了,什么是Contributions呢,Github官网上有这么一句话:

Your profile contributions graph is a record of contributions you've made to GitHub repositories. Contributions are only counted if they meet certain criteria. In some cases, we may need to rebuild your graph in order for contributions to appear.

你的个人简介中的贡献图记录的是你给Github上的仓库的贡献。它仅仅只记录某些符合标准的commits。在某些情况下,我们需要重新建立你的贡献图以便让所有的贡献都显示出来。

什么样的贡献才会被Github统计?

英语好的同学请移步 Why are my contributions not showing up on my profile?

Issues 和 pull requests

  • 这个操作是在一年之内

  • 这个操作是针对一个独立的仓库,不能是fork

Commits

当你的commits满足以下条件时,它才会被展示出来:

  • 一年之内提交的commits

  • commits使用的email地址是与你的Github账号相关联的

  • 这些commits是在一个独立的仓库而不是fork仓库

  • 这些commits是在:

    • 在默认分支上(通常是master

    • gh-pages分支(包含 Project Pages sites 的仓库)

此外,至少满足下面条件中的一个(主要针对你Commit的仓库不是你创建的):

  • 你是这个仓库的协作者,或者是这个版本库的拥有组织中的一员

  • 你fork过这个仓库

  • 你对这个仓库发起过pull request或者issue

  • 你对这个仓库标记了Star

注意:私有库的贡献仅仅对私有库成员显示

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

  • 进行Commits的用户没有被关联到你的Github帐号中。

  • 不是在这个版本库的默认分支进行的Commit。

  • 这个仓库是一个Fork仓库,而不是独立仓库。

如何排查

你可以在你的本地repo里用git log命令查看commit记录上的个人邮箱是否正确,像我就是因为之前切换到Mac平台开发之后用户名没有配置,所以我之后的commit记录上的邮箱一直是Leo@Leo-MacBook-Pro.local,所以Github就会认为这些commits都不是你提交的!

补救措施

然而这也并不是没有补救办法的,Github官网上就有给出详细的补救过程,英语好的同学请自行移步 Changing author info,下面是我翻译自Github Help的简要步骤:

变更作者信息

为改变已经存在的 commits 的用户名和/或邮箱地址,你必须重写你 Git repo 的整个历史。

警告: 这种行为对你的 repo 的历史具有破坏性。如果你的 repo 是与他人协同工作的,重写已发布的历史是一种不好的习惯。仅限紧急情况执行该操作。

使用脚本改变你 repo 的 Git 历史
我们写了一段能把 commit 作者旧的邮箱地址修改为正确用户名和邮箱的脚本。

使用脚本来改变某个repo的Git历史

我们已经创建了一个脚本,使用正确的姓名和电子邮件地址提交后,你以前提交的所有的commits中的作者信息及提交者字段中的旧的用户名和邮箱地址都将被更正

注意: 执行这段脚本会重写 repo 所有协作者的历史。完成以下操作后,任何 fork 或 clone 的人必须获取重写后的历史并把所有本地修改 rebase 入重写后的历史中。

在执行这段脚本前,你需要准备的信息:

  1. Mac、Linux下打开Terminal,Windows下打开命令提示符(command prompt)

  2. 给你的repo创建一个全新的clone
    git clone --bare https://github.com/user/repo.git
    cd repo.git

  3. 复制粘贴脚本,并根据你的信息修改以下变量:旧的Email地址正确的用户名正确的邮件地址

    #!/bin/sh
    git filter-branch --env-filter '
    OLD_EMAIL="旧的Email地址"
    CORRECT_NAME="正确的用户名"
    CORRECT_EMAIL="正确的邮件地址"
    if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
    thenexport GIT_COMMITTER_NAME="$CORRECT_NAME"export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
    fi
    if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
    thenexport GIT_AUTHOR_NAME="$CORRECT_NAME"export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
    fi
    ' --tag-name-filter cat -- --branches --tags
  4. Enter键 执行脚本。

  5. git log命令看看新 Git 历史有没有错误

  6. 把正确历史 push 到 Github

    git push --force --tags origin 'refs/heads/*'
  7. 删掉刚刚临时创建的 clone

    cd ..
    rm -rf repo.git

如何正确设置你的 git 个人信息

接下来全局设置好你的正确信息,以后就放心的用Github进行版本管理吧 ^_^

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

更多配置可以参考Pro Git 8.1自定义 Git - 配置 Git

转载请注明原文链接:http://xunli.xyz/2016/01/09/g...

为什么Github没有记录你的Contributions相关推荐

  1. Github为什么没有记录你的Contributions

    Github为什么没有记录你的Contributions 最近看我的github时,突然发现我的Contributions Graph上一篇空白居然只有两三个小绿块 为什么你的 Contributio ...

  2. linux手机刷机包制作工具_刷GitHub提交记录工具制作

    跳转至专题目录 专题推荐文章: localPosition与anchoredPosition转化 unity Scene View扩展之编辑器扩展总结 又到了一个坑,下个坑还没想好怎么挖的环节. 就随 ...

  3. 手把手教你刷github提交记录

    前言 进入自己github主页会看到自己的提交记录,如果某天没有提交记录,那天的小方框就显示灰色.强迫症的我,每次进来看着就感觉不爽, 想着自己每天记得提交点东西,争取像阮一峰大神一样,每天都有提交记 ...

  4. Git, GitHub使用记录

    高亮颜色说明:突出重点 个人觉得,:待核准个人观点是否有误 高亮颜色超链接 文章目录 速查 官方文档 GitHub Cheat Sheet 安装 配置工具 创建仓库 .gitignore 文件 分支 ...

  5. github学习记录

    github学习记录 引言 1.安装及初始化git 2.新建仓库 3.clone仓库 4.已存在仓库 5.从github上下载部分文件 5.打标签 6.常见问题 7.合并分支 8.commit 格式 ...

  6. Github没有记录Contributions的原因及解决方案

    为什么你的 Contributions 没有在你的 Profile 里显示? 那么问题来了,什么是Contributions呢,Github官网上有这么一句话: Your profile contri ...

  7. gitHub使用记录

    前言 之前一直用的都是Bitbucket,虽然gitHub很早就开通了,但是一直没有用它,今天算是第一次用吧.在配置上遇到了一些问题,在这里记录下来和大家一起分享. 什么是gitHub github是 ...

  8. github 使用记录

    安装客户端tortoiseGit 是服务端,要想在自己电脑上使用git我们还需要一个git客户端,我这里选用TortoiseGit,他给我们提供了图形界面的操作.在安装之前首先需要安装git,下载地址 ...

  9. 推荐一个以动画效果显示github提交记录的黑科技工具:Gource

    程序员每天都会使用到git的一系列命令.其中用git log命令可以查看提交历史记录: 今天Jerry给大家推荐一款视觉效果非常酷炫的工具,名叫Gource,是一个能够将git代码仓库的提交历史以动画 ...

最新文章

  1. matlab中textread
  2. another app is currently holding the yum lock;waiting for it to exit解决
  3. golang日志服务器_日志系统 | log/syslog (log) – Go 中文开发手册 - Break易站
  4. Android面试:Java相关
  5. linux mkfs.ext3 参数,linux命令mkfs.ext3用法[阮胜昌]
  6. mysql 第二天数据_MySQL入门第二天------数据库操作
  7. 深入解读:获得 2021 Forrester 全球云数仓卓越表现者的阿里云数据仓库
  8. C--数据结构--树的学习
  9. 安卓应用安全指南 4.9 使用`WebView`
  10. Ubuntu16.04安装系统之后软件无法安装
  11. 关键路径转化率分析——漏斗模型
  12. python+Flask 返回视频并在前端播放
  13. excel 方框打钩
  14. 15.4.1 使用CREATE OR REPLACE VIEW语句修改视图结构
  15. 惠普计算机如何用u盘引导启动不了系统安装系统,惠普笔记本进BIOS设置U盘启动教程...
  16. jedis pool的问题
  17. 学习深度学习过程中的一些经验与方法
  18. 【vijos】1770 大内密探(树形dp+计数)
  19. 港科夜闻|香港科技大学与英国思克莱德大学深化研究合作
  20. rust快速升级墙指令_外服一键升级指令是啥呀

热门文章

  1. 每日一句:day01——From Zero To Hero
  2. python泰坦尼克号案例分析课程设计_《泰坦尼克号》教学案例
  3. Android中的复制粘贴?
  4. 七年java开发,在拿下阿里、腾讯、百度、美团的offer后,有感而发,总结如下
  5. 安防行业S2B2C系统网站智能化大数据,S2B2C平台助力企业效率成倍提升
  6. 使用MCD12C1数据绘制全球土地覆盖类型图
  7. 适合ipad的python编程软件-iPad编程软件推荐(一) —— Pythonista 3
  8. 快递100 https://m.kuaidi100.com/
  9. 腾讯净利润持续下滑,游戏业务印钞机为何失灵?
  10. 国企深度揭秘 | 移动总部网络事业部