常规
众所周知,日常配置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
属性
git
在2.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 官方文档