Git配置的优先级是什么?

43

如果我在~/.gitconfig文件中设置了配置,哪个配置将覆盖它?

  • 项目级别配置:.git/config
  • 系统级别配置:/etc/gitconfig

1
你先试试怎么样? - zerkms
2个回答

74

从优先级最低到最高的顺序:

  • /etc/gitconfig: 系统范围内的配置,使用--system参数时可编辑
  • ~/.gitconfig: 用户特定的配置,使用--global参数时可编辑
  • .git/config: 存储库特定的配置

2
在Windows系统中,系统范围的文件在哪里? - djangofan
5
谷歌说C:\Program Files\Git\etc\gitconfig,我只能相信它的话。 - Michael Kohl
5
感谢您阅读手册并以周一早上的形式呈现给我 :) - Brian
@Erlan 我认为这是一个全局设置。你可以尝试在拉取之前设置HTTP_PROXY(或HTTPS_PROXY)环境变量,看看是否有帮助。 - Michael Kohl
1
我总是困惑于/usr/local/etc/gitconfig是否被使用(也就是说,<prefix>/etc/gitconfig/还是只有/etc/gitconfig用于系统。 - Steven Lu
显示剩余3条评论

25
根据 Git 手册(阅读 http://git-scm.com/docs/git-config#FILES),默认情况下,若未通过 --file 显式设置,则 git config 会在四个文件中搜索配置选项:
- $(prefix)/etc/gitconfig:系统范围的配置文件。 - $XDG_CONFIG_HOME/git/config:第二个用户特定配置文件。如果 $XDG_CONFIG_HOME 未设置或为空,则使用 $HOME/.config/git/config。在此文件中设置的任何单值变量都将被 ~/.gitconfig 中的变量覆盖。如果您有时使用旧版本的 Git,请不要创建此文件,因为对该文件的支持是最近才添加的。 - ~/.gitconfig:用户特定配置文件。也称为“全局”配置文件。 - $GIT_DIR/config:存储库特定配置文件。
如果没有提供其他选项,则所有读取选项都会读取所有可用的文件。如果全局或系统范围的配置文件不可用,则它们将被忽略。如果存储库的配置文件不可用或不可读,则 git config 将退出并显示非零错误代码。但是,在这两种情况下都不会发出错误消息。这些文件按上述顺序读取,后找到的值优先于先前读取的值。当使用多个值时,将使用所有文件中键的所有值。

在最后一行中,“当取多个值时,将使用所有文件中的键的所有值”是什么意思?你能用一个例子来解释一下吗? - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接