众所周知,日常配置 git 用户信息的方式通常是: git config --global user.name '用户名'git config --global user.email '邮箱' 全局方式配置,写入到 ~/.gitconfig 文件中,这种方式显然只能设置最常用
众所周知,日常配置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
语法一样。
测试:这个时候直接在~/webserver/php/dd/
目录执行git config user.name
是无效的,需要到该目录下任何一个git
仓库目录中执行。
注意,如果该仓库之前已配置user
信息,可以在仓库根目录编辑.git/config
,然后把[user]
相关信息删除,再执行git config user.name
即可。