Git 技巧之高级配置用户信息

常规 众所周知,日常配置git用户信息的方式通常是:

git config --global user.name '用户名' git config --global user.email '邮箱'

全局方式配置,写入到 ~/.gitconfig文件中,这种方式显然只能设置最常用通用的 用户信息,然后在需要部分仓库(如公司项目)需要特殊配置时,只能再通过下面的方式配置。
git config --local user.name '用户名' git config --local user.email '邮箱'

本地仓库配置,写入到当前仓库.git/config文件中,这种方式提高了灵活性,但项目多了也需要一个一个配,而且如果工程目录变更,或者新增了其他需要特殊配置的项目,也都需要每次设置,还是比较麻烦。
includeIf属性 git2.13.0版本中,配置新增了includeIf属性,此属性就是为了解决,上述只能 全局和单个 的缺陷。
使用方式,编辑~/.gitconfig,新增如下:
[includeIf "gitdir:~/webserver/php/dd/"] path = .gitconfig-dd [includeIf "gitdir:~/webserver/code/"] path = .gitconfig-self

说明:includeIf可以出现多个,每个includeIf的作用便是:给指定目录使用指定的配置信息。
注意:这里的 目录 无需具体某个仓库,即在该目录之内的所有仓库,默认都会继承该配置。
关键参数:
  • "gitdir:~/webserver/php/dd/"中的~/webserver/php/dd/为目录位置
  • path = .gitconfig-dd中的 .gitconfig-dd 为对应的配置文件
查看一下.gitconfig-dd内容:
[user] email = silence@dd.com name = DilenceDD

其语法跟git config语法一样。
【Git 技巧之高级配置用户信息】测试:这个时候直接在~/webserver/php/dd/目录执行git config user.name是无效的,需要到该目录下任何一个git仓库目录中执行。
注意,如果该仓库之前已配置user信息,可以在仓库根目录编辑.git/config,然后把[user]相关信息删除,再执行git config user.name即可。
参考
  • git config 官方文档

    推荐阅读