我的公司要服务不同的客户,一些客户需要在自建的git平台提交代码。除了git 授权配置以外,还要配置提交者的署名和email对应到项目。比较naive的做法是

git config --global user.email [email protected]

或者针对每个每个客户的仓库分别用本地的配置去覆盖全局配置:

# under project root dir
git config user.email [email protected]

git config的一个配置项可以更好地帮我们完成多帐号的信息管理。假如我们把所有与客户A相关的repo都clone到某路径~/dev/clientA/下,我们可以在全局的git配置(~/.gitconfig)中加入以下配置:

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

然后在~/dev/clientA/.gitconfig中覆盖客户A特定的配置:

[user]
    name = name at client A
    email = [email protected]

此后,所有在~/dev/clientA/下的repo的提交都将按照上面的name和email提交。

更多关于includeIf的介绍见Conditional includes