【转】为什么Github没有记录你的Contributions

字数985 阅读0 评论0 喜欢0

记录下为什么github 提交的时候,没有记录到 github 的那个日历上。

Paste_Image.png

明明天天都有提交,但是为什么都没有记录上来呢? 想让这个日历上满满的绿色,但是发现提交都没有被统计起来,很郁闷。

后面看了commit记录,发现上传的用户都不是 github的用户名, 很纳闷。

Paste_Image.png

后面看了一篇 文章, 得知 以下三种情况,不统计。

  1. 用户名或者邮箱跟github没有关联上, github认为不是你提交的, 不统计。
  2. fork 的项目, 不统计
  3. 没有在版本库的master【默认分支】上提交

解决方案

  1. 用户名和邮箱跟github没有匹配上

    git config --global user.email "你的邮件地址" git config --global user.name "你的Github用户名"
  2. fork 的项目, 不统计

    你说怎么办呢? clone 下来, 在提交上去, 有点可耻的样子。

  3. 没有在版本库的master【默认分支】上提交 【未试过】

    有补救的方法,

    如何排查

    你可以在你的本地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 入重写后的历史中。
    在执行这段脚本前,你需要准备的信息:
    Mac、Linux下打开Terminal,Windows下打开命令提示符(command prompt)
    给你的repo创建一个全新的clonegit clone --barehttps://github.com/user/repo.gitcd repo.git
    复制粘贴脚本,并根据你的信息修改以下变量:旧的Email地址
    ,正确的用户名
    ,正确的邮件地址

    #!/bin/shgit 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"fiif [ "$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

    按 Enter键

    执行脚本。

    用git log

    命令看看新 Git 历史有没有错误
    把正确历史 push 到 Github
    git push --force --tags origin 'refs/heads/*'
    删掉刚刚临时创建的 clone
    cd ..rm -rf repo.git

原文:为什么Github没有记录你的Contributions

最新文章

  1. 浏览器内核、渲染引擎、js引擎
  2. python学习笔记系列----(七)类
  3. HDU 2147 kiki's game(博弈)
  4. Linux 前台 和 后台进程 说明
  5. nexus-2.13.0-01.war
  6. spring transactionmanager
  7. SQLServer 2000个人版下载
  8. AngularJS(1)随笔
  9. 如何实例化i2c_client(四法)
  10. Mysql + keepalived 实现双主热备读写分离【转】
  11. OC——NSString和NSMutableString
  12. Java基础学习
  13. 201521123113《Java程序设计》第13周学习总结
  14. 正确清理binlog日志
  15. 使用sshpass方式实现ssh自动登录
  16. cxgrid动态创建列
  17. 工作随笔——elasticsearch 6.6.1安装(docker-compose方式)
  18. mssql注入指令
  19. c++中类的静态成员对象
  20. 「PKUSC2018」真实排名

热门文章

  1. Java设计模式学习记录-建造者模式
  2. idea调试springmvc出现java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
  3. map映照容器(常用的使用方法总结)
  4. dom操作------获取元素的若干方法
  5. apache 隐藏 index.php
  6. openssh升级到openssh-7.5p1踩坑
  7. Jquery自定义动画与动画队列
  8. C#--用户密码处理------混淆密码加密
  9. WebForm 【简单控件】【表单元素】
  10. 【模板】 ST表