Git 配置多提交用户

1. 目的 最近我给Gitee提交了很多代码,但是贡献图还是一篇空白。查找github\gitee 统计代码共享量时使用的规则为:

贡献度的统计数据包括代码提交、创建任务 / Pull Request、合并 Pull Request,其中代码提交的次数需本地配置的 Git 邮箱是 Github/Gitee 帐号已确认绑定的才会被统计。
原来是因为:我工作电脑上有两种项目:、
  1. Gitee 上的个人项目
  2. 公司内网 Gitlab 上的公司项目
我在安装Git的时候设置了Git全局用户邮箱为公司邮箱。导致Giee项目提交用户邮箱信息都是公司的邮箱,所以代码共享上就看不到绿油油的一遍。
【Git 配置多提交用户】我的目的就是Gitee项目使用个人的邮箱,公司Gitlab项目使用公司邮箱。
2. 方法 在 Git 2.13 版本中,增加了 conditional includes 配置,可以创建多个 gitconfig 文件,并针对不同的根目录使用不同的配置文件。
例如,以下全局配置文件 ~/.gitconfig 中包含以下用户配置信息,当项目 clone 在 ~/dev/ 目录下时,会自动使用另外一份配置文件
[user] name = Your Name email = your_email@example.com [includeIf "gitdir:D:/workspace/gitee/"] path = gitconfig/gitee.gitconfig [includeIf "gitdir:D:/workspace/github/"] path = gitconfig/github.gitconfig

注意:此处的path需要放在和 .gitconfig 相同的目录下,否则不生效,比如
github 的配置 github.gitconfig 放在 C:/Users//.gitconfig 目录下,新建文件夹 gitconfig 中,否则不生效
以下是 gitconfig/gitee.gitconfig 文件的配置
[user] name = Another Name email = another_email@example.com

测试效果:
# 在本地 git repo下执行如下命令就能看到当前项目的用户信息 $ git config --show-origin --get user.email

注意:强烈建议将 global user 配置为你的 Github ID,避免默认提交中有效用户信息的缺失,导致 Github contributions 不准确。同时,不设置为公司邮箱,可以避免邮箱信息泄露。
参考资料
  • 如何配置多个提交用户?
  • Git目录级配置和分支级配置的解决方案
  • Git 2.13 conditional config on windows

    推荐阅读