【git】提交到github不显示贡献小绿点问题的解决
问题描述:
最近一直在用github来写博客,但是今天发现github上的contributions记录并没有我的提交记录.
经过一番百度和自行捣鼓发现了问题所在.
原因:
最近实习,公司给配电脑.原来没有git,是用homebrew安装的,github上的仓库也是用新电脑来创建的,以及后续博客的提交也是.
因为是mac并没有进行本地的任何配置,就直接用终端把本地文件push到仓库中去了.
原因也就在这里.
因为你本地的git默认的user.name和user.email并不是你的,而是本机.所以在此期间你的commit都是默认本机的.
你可以用git config user.name / git config user.email 来查看自己的git所属
查不出的结果应该是为空,因为你根本就没设置过.
然后用git log查看一下commit记录.你会惊奇的发现虽然在往你的github仓库中push,但是用户名和邮箱却不是你github的,而是系统默认的pc用户.
所以github贡献统计的根本就不是你的账户,就没有贡献小绿点咯.
解决办法:
1.如果你只是想以后的commit记录,你只需要把当前本地git的user.name和user.email配置一下即可.
$ git config --global user.name “github’s Name” $ git config --global user.email "github@xx.com"
这里只是在git config 后边添加上了你要更改的内容即可,--global参数指的是全局,也就是你本地的所有仓库,如果不加就是单个仓库.
修改好后,你以后的commit就是你的账户了,就能被统计贡献小绿点了.
2.如果你不想浪费之前的commit贡献,需要把所有你用默认账户的commit都归为你真正的名下怎么办.
我们需要修改所有的commit和push历史
git filter-branch -f --env-filter '
if [ "$GIT_AUTHOR_NAME" = "oldName" ]
then
export GIT_AUTHOR_NAME="newName"
export GIT_AUTHOR_EMAIL="newEmail"
fi
' HEAD git filter-branch -f --env-filter '
if [ "$GIT_COMMITTER_NAME" = "oldName" ]
then
export GIT_COMMITTER_NAME="newName"
export GIT_COMMITTER_EMAIL="newEmail"
fi
' HEAD
这里的oldName我们可以通过git log来查看,其实这里只要修改GIT_COMMITTER就可以了.
AUTHOR记录的是这次修改的作者信息,COMMITTER是这次提交的用户信息.
注意两者区别,
如果你自己写自己提交,那么两者都是你.
有的项目有的人并没有commit权限,所以他需要修改完之后交给有权限的人提交,这样你是AUTHOR并不是COMMITTER
如果修改成功提示:Ref 'refs/heads/master' was rewritten.
如果修改失败提示:Ref 'refs/heads/master' is unchanged.这里可能是因为你填写的oldName并没有找到.
如果无差别把所有都改的话去掉if..fi
git filter-branch -f --env-filter "
GIT_AUTHOR_NAME='newName';
GIT_AUTHOR_EMAIL='newEmail';
GIT_COMMITTER_NAME='newName';
GIT_COMMITTER_EMAIL='newEmail'
" HEAD
这样就全部改过来了.
注意:
你这里将你本地git的账户和邮箱重新设置了,但是github并没有那么智能就能判断你是原来你系统默认的用户.
也就是说你新配置的用户和你默认的被github识别成两个用户.
这样你以后操作的时候commit 或者 push的时候有可能产生冲突.

解决方法是
1.使用强制push的方法:
$ git push -u origin master -f
这样会使远程修改丢失,一般是不可取的,尤其是多人协作开发的时候。
我这里只是自己写的博客,所以就直切全部强制覆盖掉了.
2.push前先将远程repository修改pull下来
git pull origin master
git push -u origin master
3.若不想merge远程和本地修改,可以先创建新的分支:
git branch [name]
然后push
git push -u origin [name]
效果图:
在使用默认的git用户修改的显示是这样的,nice是我的pc用户名

修改之后,

修改完之后刷新,我的贡献小绿点全部出来了.(小绿点是以账户邮箱为单位记录的,如果有多个邮箱,可以在信息里的email添加新邮箱就完事ok)
最后叮嘱:
当我们换电脑使用git的时候,记得修改 git config user.name/user.email就不会出现这样的问题了.
【git】提交到github不显示贡献小绿点问题的解决的更多相关文章
- 使用git提交到github,每次都要输入用户名和密码的解决方法
使用git提交文件到github,每次都要输入用户名和密码,操作起来很麻烦,以下方法可解决,记录以下. 原因:在clone 项目的时候,使用了 https方式,而不是ssh方式. 默认clone 方式 ...
- git提交后文件夹显示灰色无法打开的解决办法
上传完本地文件到gitee线上后发现如下情况,文件夹显示为灰色并且无法访问. xxx@xxx 的灰色文件 问题原因 : 无法点击的灰色文件夹中含有 .git 文件 即在本地初始化的仓库(使用 git ...
- git 提交到github时不用每次都输入用户名,密码
Permanently authenticating with Git repositories, Run following command to enable credential caching ...
- 使用git命令提交远程github仓库的时候提示"rejected"(拒绝)解决办法
今天使用在自己笔记本本地磁盘上使用Git命令行执行"git push"然后输入github的用户名和密码之后,报如下错误: ![rejected] master->maste ...
- Git提交到github上
1.本地创建一个目录redis [guosong@etch171 mars171 redis]# pwd /data1/guosong/code/redis [guosong@etch171 mars ...
- 本地项目文件通过git提交到GitHub上
参考:https://blog.csdn.net/kongying19910218/article/details/50515834 步骤: 1.初始化git,假如我们要提交test文件夹下的所有目录 ...
- putty完全使用手册--多窗口---git提交---连接数据库--自动日志显示
01 putty dev 192.168.3.38 02 cd /home/gongfu/tripb/cranedev02.1 git status git add git commit git pu ...
- github提交代码contributions不显示小绿块
问题描述: 最近发现一个问题就是不管是提交新增的代码还是修改后提交的代码在github的contributions上都不显示贡献小绿块. 于是我在 github help 里面找到了答案: 官方链接如 ...
- 使用git提交代码到github,每次都要输入用户名和密码的解决方法
自从使用git提交代码到github后,发现自己使用git的功力增长了不少,但也遇到不少问题.比如,使用git提交代码到github的时候,经常要求输入用户名和密码,类似这种: 网上有这么一种解决方法 ...
随机推荐
- installEventFilter可以安装到任何QObject的子类,并不仅仅是UI组件。事件过滤器和安装过滤器的组件必须在同一线程,在它们分属在不同线程时,事件过滤器也是不起作用的
Qt的事件知识点: ①事件对象创建完毕后,Qt 将这个事件对象传递给 QObject 的 event() 函数.event() 函数并不直接处理事件,而是将这些事件对象按照它们不同的类型,分发给不同的 ...
- centos shell基础 alias 变量单引号 双引号 history 错误重定向 2>&1 jobs 环境变量 .bash_history source配置文件 nohup & 后台运行 cut,sort,wc ,uniq ,tee ,tr ,split, paste cat> 2.txt <<EOF 通配符 glob模式 发邮件命令mail 2015-4-8 第十二节课
centos shell基础知识 alias 变量单引号 双引号 history 错误重定向 2>&1 jobs 环境变量 .bash_history source配置文件 ...
- docker镜像文件导入与导出,支持批量
工作中经常需要拉取一些国外的镜像,但是网络限制等原因在公司拉取很慢,所以我习惯用亚马逊服务器拉取镜像,导出后下载到本地再导入开发环境 1. 查看镜像id sudo docker images REPO ...
- stringbuffer 和 stringbuilder区别
stringbuffer 和 stringbuilder速度 小于 线程安全 线程非安全 单线程操作大量数据用stringbui ...
- 454 Authenti cation failed, please open smtp flag first! (Net::SMTPAuthenticationError)
在用ruby的smtp库发送邮件的时候,出现了这个错误454 Authenti cation failed, please open smtp flag first! (Net::SMTPAuthen ...
- 字王4K云字库入驻github
字王4K云字库入驻github 网址:https://github.com/ziwang-com/zw4kFont 2015.3.28,字王4K云字库入驻github,原本或早或晚,不过这几天在g ...
- Python 安装pytz
1. https://pypi.org/project/pytz/#files 2. 下载上图标黄的文件, 3. pip install 4. from pytz import ...
- Python: 矩阵与线性代数运算
需要执行矩阵和线性代数运算,比如矩阵乘法.寻找行列式.求解线性方程组等等. 矩阵类似于3.9 小节中数组对象,但是遵循线性代数的计算规则.下面的一个例子展示了矩阵的一些基本特性: >>&g ...
- bzoj1621 / P2907 [USACO08OPEN]农场周围的道路Roads Around The Farm
P2907 [USACO08OPEN]农场周围的道路Roads Around The Farm 基础dfs,按题意递归即可. #include<iostream> #include< ...
- 微信小程序:WXML 模板
微信小程序:WXML 模板 一.WXML 模板 网页编程采用的是 HTML + CSS + JS 这样的组合,其中 HTML 是用来描述当前这个页面的结构,CSS 用来描述页面的样子,JS 通常是用来 ...