Git项目,全局和系统变量的优先级是什么?

时间:2014-11-09 02:10:21

标签: git

Git项目,全局和系统变量的优先级是什么?

所以,如果我在.gitconfig文件中全局设置配置,哪个配置会覆盖它:它是项目级配置还是系统级配置?

2 个答案:

答案 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将以非零错误代码退出。但是,在任何情况下都不会发出错误消息。

     

按照上面给出的顺序读取文件,找到的最后一个值优先于先前读取的值。当获取多个值时,将使用所有文件中的所有键值。