现象
git 贡献者,在码云上显示的跟实际登录认证账号不一致。
原因
如果设置了全局用户名和邮箱为 A,虽然提交代码的时候,登录认证账号是 B,最后在码云上查看,贡献者仍然显示为 A,这就导致认证账号与代码贡献者不一致的现象。
全局用户名和邮箱是本地 git 客户端的变量,可配置,不随 git 库而改变。gitee 和 github 是按邮箱来统计贡献者(Contributors)的。
查看全局用户名和邮箱
1 | $ git config user.name |
这是我之前设置的,最近,我在 gitee 上重新注册了一个账号(为了与 github 的账号用同样的邮箱),相关项目已经迁移至新账号,新账号下的项目都没有单独配置用户名和邮箱。
我发现最近的提交,都统计到之前的账号了,而且,家里电脑提交的,和在办公室电脑上提交的,还都不一样(我承认,我有多个 gitee 账号^()^ ^_^),甚是纳闷,后来才想起来有全局配置这回事儿。
解决办法
为项目单独配置用户名和邮箱
到项目根目录下,修改 .git 目录下的 config 文件,在末尾添加:
1
2
3[user]
name = AndyChen
email = 552087293@qq.com.git 目录是隐藏目录,需要设置隐藏目录可见。
- 用命令
1
2
3
4
5
6
7
8
9AndyChen@AndyChen MINGW64 /c/workspace/esDemo (master)
$ git config user.name 'AndyChen'
AndyChen@AndyChen MINGW64 /c/workspace/esDemo (master)
$ git config user.email '552087293@qq.com'
AndyChen@AndyChen MINGW64 /c/workspace/esDemo (master)
$ git config user.email
552087293@qq.com
该命令执行之后,会在 .git 目录下的 config 文件,在末尾添加相关配置内容,跟直接修改 config 文件的效果是一样的。
修改全局用户名和邮箱
1 | AndyChen@AndyChen MINGW64 /c/workspace/esDemo (master) |
跟单独给项目配置用户名和邮箱的区别是,这里加了全局选项 --global
再到一个没有项目文件的目录查看配置情况:
1 | # 全局配置修改之前的配置 |
如上,说明全局配置已经生效了。