【Git】关于config环境分离以及includeIf用法

本文介绍方法主要通过includeif操作,若已经知道了的同仁就可以不用继续往下翻了;若对includeif不太了解的同仁可以参考git文档相关说明GIT-includeif相关说明

GIT环境分离及使用需求

GIT环境分离使用需求

GIT环境分离使用需求:一般是在远程工作或多个私库/公库中运用比较多,环境分离的好处是,集中起来操作更容易,配置更方便更灵活。

关于GIT配置文件属性:includeif、user、path

说到环境分离,先说明一点,环境分离一样需要config文件,只是可能需要多几个config文件(或者硬写配置进入一个config)。针对不同仓库可以拥有不同config文件,这些文件与原先不同,不必再以local配置的形式放在每个仓库中了。  
includeif

  说到includeif,就不得不说先说一下include,先看下官方demo

    [include]
        path = /path/to/foo.inc ; 绝对路径
        path = foo.inc ; 相对路径
        path = ~/foo.inc ; 查询$HOME路径

    ; 当仓库所在目录包含gitdir之后的路径才会使用.inc文件
    [includeIf "gitdir:/path/to/foo/.git"]
        path = /path/to/foo.inc

    ; 所有仓库目录在gitdir之后的路径下的,都会使用.inc文件
    [includeIf "gitdir:/path/to/group/"]
        path = /path/to/foo.inc

    ; 路径描述也可以用定义过的环境变量代替
    [includeIf "gitdir:~/to/group/"]
        path = /path/to/foo.inc

由上可以看出,include可以将配置的文件给包含进去。
而includeif,就像demo写的一样,可以通过对gitdir的设置,把不同仓库,或者包含不同仓库的文件夹设置为不同的config文件。

至此就已经很清楚了,只需要将不同的username及email写在不同的config里,然后在global的config中把includeif路径设置好,对应上不同的gitconfig即可。

user

  而user其实是个标签组,在当中可以根据属性去配置相关信息,官方demo如下

[user]
	name = Your Name Comes Here
	email = you@yourdomain.example.com
path

  path分为绝对路径,相对路径,以及可以用已经配置好的环境变量来代替常用路径

Example

global gitconfig file

如上图,在git的global当中配置如上配置即可(如有多个配置文件,可以直接复制上段进行修改。)

repo gitconfig file

上图即是单个配置文件中的内容(如有多个需要分离的配置,也可以在这些文件里自己配置)

global config test

图为测试在非相关目录下时,git config中的配置显示

repo config test

图为测试在仓库相关目录下时,git config中的配置显示

总结

GIT环境分离的场景其实很常见,不论是在家中的私有/公有仓库间的切换,还是在公司的开发及生产间的切换,都有一些帮助。
具体其他相关配置,可以看这个demo


标题:【Git】关于config环境分离以及includeIf用法
作者:taoism-o
地址:https://kevincheng.xin/articles/2019/01/06/1546774904436.html