惯例
家喻户晓,日常配置 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
即可。
参考
- git config 官网文档