背景

用自己的电脑远程办公的时候,提交的代码邮箱都是个人邮箱,这让强迫症肯定不能忍呀。

如果一两个项目还可以通过改.git/config来配置,但是在公司久了接手的维护的项目大大小小几十个,每个都配一遍那肯定受不了啊。而且要换台电脑就又得从头再来,这可不是个好选项。

遂搜了一圈,发现可以通过includeIf来配置指定文件夹下的Git配置。

includeIf

从Git 2.13开始,Git配置文件开始支持名为Conditional Includes的配置。通过设置includeIf.\<condition>.path,通过path匹配系统文件路径指向的一个Git配置文件。

举个例子

现在我有一个存放工作项目的文件夹

~/work  # 工作项目

它配置的邮箱应该是不一样的,所以在这个文件夹下各建立一个.gitconfig文件

vi ~/work/.gitconfig

配置工作的用户名和邮箱,如果公司项目有专用代理,也可以在这里配上。

[user]
  name = <Your Name>
  email = <Your Email>

配置完以后,大家~/.gitconfig

vi ~/.gitconfig

增加下面的内容

[includeIf "gitdir:~/work/"]
    path = ~/work/.gitconfig

然后就大功告成啦,只要工作相关的项目都放在这个文件夹下,它们的配置都会是统一的,不必一个一个再去单独配置了。

References

[1] Use a different user.email and user.name for Git config based upon remote clone URL