本文介绍方法主要通过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
如上图,在git的global当中配置如上配置即可(如有多个配置文件,可以直接复制上段进行修改。)
上图即是单个配置文件中的内容(如有多个需要分离的配置,也可以在这些文件里自己配置)
图为测试在非相关目录下时,git config中的配置显示
图为测试在仓库相关目录下时,git config中的配置显示
总结
GIT环境分离的场景其实很常见,不论是在家中的私有/公有仓库间的切换,还是在公司的开发及生产间的切换,都有一些帮助。
具体其他相关配置,可以看这个demo
标题:【Git】关于config环境分离以及includeIf用法
作者:taoism-o
地址:https://kevincheng.xin/articles/2019/01/06/1546774904436.html