git config(global、system、local)
现在大部分的项目代码的都使用git做版本控制,因此我们有必要了解git的配置文件。如果对git的配置文件不了解会导致有些时候明明配置了却发现不生效,比如在某个非git仓库目录下执行配置用户名命令:git config user.name xxx
,却发现某个项目仓库并没有生效。
首先,我们在命令行中输入git config
可以看到如下图提示:
Git有3个级别的配置文件(local
、global
、system
),worktree基本不使用此处不作考虑。
1.system系统级
系统级配置文件含有系统里每位用户及他们所拥有的仓库的配置值。其位置为git的安装目录下的/etc/gitconfig
,即如果git的安装目录为D:\Git
,则配置文件地址为D:\Git\etc\gitconfig
。
优先度最低,其配置值可被全局级配置和本地级配置的值覆盖。一般我们很少会使用系统级的配置。
2.global全局级
全局级配置文件包含当前系统用户的拥有的仓库配置值,每个系统用户的全局级配置相互隔离。全局级别的配置默认保存在当前系统用户的主目录下的 .gitconfig 文件内。Windows通常保存在C:\Users\xxxx\.gitconfig
,Linux为/home/xxx/.gitconfig
。
优先度比系统级高,可覆盖系统级的配置值。全局级的配置平时使用得比较多,比如设置账号和邮箱:
1 |
|
3.local本地级
本地级别的配置保存在当前仓库下面的 .git\config
文件内,通常 .git 文件夹是隐藏的,Window要在文件管理器的文件夹选项中打开显示隐藏文件夹才可以看到。这里的配置仅对当前仓库有效,不影响其他的仓库。
优先级别最高,如果全局级别或系统级别的配置里出现了同一配置项,则以本地级别配置内容为准
4.配置使用
- 获取配置项的值
获取某一项配置时若不指定级别,则会从本地级开始一级一级往上查找直到配置不存在。即:先从本地级配置中开始查找配置项,若本地级不存在则往上从全局级别配置查找,若全局级别还是不存在该配置项就从系统级配置查找,若还是不存在则返回空。
1 |
|
- 设置配置项的值
设置某一项配置时若不指定级别,则会配置项默认会设置到本地级的配置文件中,即设置配置项时默认使用--local
级别。若指定级别配置项就设置到该级别的配置文件中。
1 |
|
- 删除配置项
与设置配置项一样,删除配置项若不指定级别,则默认使用--local
级别。指定级别则删除该级别的配置文件中的配置项
1 |
|
- 获取所有配置项
若不指定配置级别,则会返回3个级别的配置,从上往下按系统级别、全局级别、本地级别的顺序进行输出显示。
了解更多内容可以看git官网的配置说明。