本文共 3147 字,大约阅读时间需要 10 分钟。
【转载原因:遇到同样的问题,push成功,但是contribuions表格上不现实,参考本文添加了github认证用户邮箱解决】
【转载原文:】
参考github官方帮助文档:Changing author info最近发现github在git push之后不记录Contributions[贡献],这种情况只在单位的开发机上出现,在家里的开发机上完全正常。
通过查询资料,发现原来是因为单位开发机上git配置的email不正确。 1. 通过git config查看配置的邮箱$ git config --global --listuser.name=zhangsanuser.email=wrong_email@163.com
这个邮箱地址应该与github中Public profile配置中的Public email一致。
2. 还可以通过git log进行确认
$ git logcommit 1908f7703a96e4df3a85c2b6e8ea179eb6112f8aMerge: 40d9ff0 2f96407Author: zhangsanDate: Wed Jan 31 15:39:21 2018 +0800...
假设前提:
- 假设我叫张三,github用户名是zhangsan,当前的email是wrong_email@163.com,正确的email是right_email@163.com。 - 假设这个项目的名字是mydemo,位于IdeaProjects目录下。解决流程如下:1.克隆裸库:通过git clone --bare克隆裸库(bare repository:只记录版本库历史记录的版本库)
//返回上一级目录zhangsan@DESKTOP-FG4HTMB MINGW64 ~/IdeaProjects/mydemo (master)$ cd ..//创建baredemo目录,用于存放裸库zhangsan@DESKTOP-FG4HTMB MINGW64 ~/IdeaProjects$ mkdir baredemo//查看目录情况zhangsan@DESKTOP-FG4HTMB MINGW64 ~/IdeaProjects$ lsmydemo baredemo//进入baredemo目录zhangsan@DESKTOP-FG4HTMB MINGW64 ~/IdeaProjects$ cd baredemo///克隆裸库zhangsan@DESKTOP-FG4HTMB MINGW64 ~/IdeaProjects/baredemo$ git clone --bare git@github.com:zhangsan/mydemoCloning into bare repository 'mydemo.git'...remote: Counting objects: 129, done.remote: Compressing objects: 100% (65/65), done.Receiving objects: 32% (42/129)Receiving objects: 100% (129/129), 17.77 KiB | 0 bytes/s, done.Resolving deltas: 100% (21/21), done.//进入裸库zhangsan@DESKTOP-FG4HTMB MINGW64 ~/IdeaProjects/baredemo$ cd mydemo.git/2.创建并执行脚本修改作者信息的文件
//创建脚本文件zhangsan@DESKTOP-FG4HTMB MINGW64 ~/IdeaProjects/baredemo/baredemo.git (BARE:master)$ touch refactor_email.sh然后将下列内容拷贝到`refactor_email.sh`中,注意修改`OLD_EMAIL[错误邮箱]`、`CORRECT_NAME[用户名]`和`CORRECT_EMAIL[正确邮箱]`
#!/bin/bashgit filter-branch --env-filter 'OLD_EMAIL="wrong_email@163.com"CORRECT_NAME="zhangsan"CORRECT_EMAIL="right_email@163.com"if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]thenexport GIT_COMMITTER_NAME="$CORRECT_NAME"export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"fiif [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]thenexport GIT_AUTHOR_NAME="$CORRECT_NAME"export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"fi' --tag-name-filter cat -- --branches --tags
保存并执行脚本文件
//执行脚本文件zhangsan@DESKTOP-FG4HTMB MINGW64 ~/IdeaProjects/baredemo/baredemo.git (BARE:master)./refactor_email.sh
//确认是否已经修改正确$ git logcommit 1908f7703a96e4df3a85c2b6e8ea179eb6112f8aMerge: 40d9ff0 2f96407Author: zhangsanDate: Wed Jan 31 15:39:21 2018 +0800...//重新提交版本信息git push --force --tags origin 'refs/heads/*'
//退出裸库zhangsan@DESKTOP-FG4HTMB MINGW64 ~/IdeaProjects/baredemo/baredemo.git (BARE:master)$ cd ..//退出裸库目录zhangsan@DESKTOP-FG4HTMB MINGW64 ~/IdeaProjects/baredemo$ cd ..//删除裸库目录zhangsan@DESKTOP-FG4HTMB MINGW64 ~/IdeaProjects$ rm -rf baredemo///查看目录情况zhangsan@DESKTOP-FG4HTMB MINGW64 ~/IdeaProjects$ lsmydemo
//将邮箱修改正确git config --global user.name "right_email@163.com"//查看配置情况$ git config --global --listuser.name=zhangsanuser.email=right_email@163.com———————————————— 版权声明:本文为CSDN博主「hanchao5272」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/hanchao5272/article/details/79224161