Git项目,全局和系统变量的优先级是什么?
所以,如果我在.gitconfig文件中全局设置配置,哪个配置会覆盖它:它是项目级配置还是系统级配置?
答案 0 :(得分:48)
从最低到最高的优先级:
/etc/gitconfig
:系统范围,在使用--system
参数时编辑~/.gitconfig
:用户特定配置,在使用--global
参数时编辑.git/config
:特定于存储库的配置答案 1 :(得分:21)
从Git手册(阅读http://git-scm.com/docs/git-config#FILES)
如果未使用--file显式设置,则有四个文件,其中git config将搜索配置选项:
<强> $(前缀)的/ etc / gitconfig 强>
系统范围的配置文件。
<强> $ XDG_CONFIG_HOME / GIT中/配置强>
第二个特定于用户的配置文件。如果$ XDG_CONFIG_HOME未设置或为空,则将使用$ HOME / .config / git / config。此文件中设置的任何单值变量都将被〜/ .gitconfig中的任何内容覆盖。如果您有时使用旧版本的Git,最好不要创建此文件,因为最近才添加对此文件的支持。
<强>〜/的.gitconfig 强>
特定于用户的配置文件。也称为“全局”配置文件。
<强> $ GIT_DIR /配置强>
存储库特定配置文件。
如果没有给出进一步的选项,所有阅读选项都将读取所有可用的文件。如果全局或系统范围的配置文件不可用,则将忽略它们。如果存储库配置文件不可用或不可读,git config将以非零错误代码退出。但是,在任何情况下都不会发出错误消息。
按照上面给出的顺序读取文件,找到的最后一个值优先于先前读取的值。当获取多个值时,将使用所有文件中的所有键值。