1. 目的

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

原来是因为:我工作电脑上有两种项目:、

  1. Gitee 上的个人项目
  2. 公司内网 Gitlab 上的公司项目

我在安装Git的时候设置了Git全局用户邮箱为公司邮箱。导致Giee项目提交用户邮箱信息都是公司的邮箱,所以代码共享上就看不到绿油油的一遍。

我的目的就是Gitee项目使用个人的邮箱,公司Gitlab项目使用公司邮箱。

2. 方法

Git 2.13 版本中,增加了 conditional includes 配置,可以创建多个 gitconfig 文件,并针对不同的根目录使用不同的配置文件。

例如,以下全局配置文件 ~/.gitconfig 中包含以下用户配置信息,当项目 clone 在 D:/workspace/gitee/ 目录下时,会自动使用另外一份配置文件

[user]
    name = Your Name
    email = [email protected]
[includeIf "gitdir:D:/workspace/gitee/"]
    path = gitconfig/gitee.gitconfig
[includeIf "gitdir:D:/workspace/github/"]
    path = gitconfig/github.gitconfig

注意:此处的 path 需要放在和 .gitconfig 相同的目录下,否则不生效,比如

以下是 gitconfig/gitee.gitconfig 文件的配置

[user]
    name = Another Name
    email = [email protected]

测试修改配置是否生效:

# 在本地 git repo下执行如下命令就能看到当前项目的用户信息
# 注意是在 具体的仓库目录下,不是上面配置的外层文件夹下
$ git config --show-origin --get user.email

注意:强烈建议将 global user 配置为你的 Github ID,避免默认提交中有效用户信息的缺失,导致 Github contributions 不准确。同时,不设置为公司邮箱,可以避免邮箱信息泄露。

参考资料

03-05 20:38