乐趣区

关于git: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 语法一样。

测试:这个时候间接在 ~/webserver/php/dd/ 目录执行 git config user.name 是有效的,须要到该目录下任何一个 git 仓库目录中执行。
留神,如果该仓库之前已配置 user 信息,能够在仓库根目录编辑 .git/config,而后把[user] 相干信息删除,再执行 git config user.name 即可。

参考

  • git config 官网文档
退出移动版