如何找出使用哪个Git配置文件以及如何覆盖设置?

P. *_*ier 17 git git-config

我有两个相关的问题:

  1. 如何确定我的Git bash客户端正在使用哪个配置文件?
  2. 我可以覆盖正在使用的配置文件中的设置吗?

我知道有一个系统,全局和本地(aka项目).gitconfig文件.而且,根据Git网站,这些"级别"(系统,全局,本地)中的每一个都会覆盖前一级别的值,因此./git/config(本地)中的值会胜过其中的值/etc/gitconfig.

换句话说,我们正在处理层次结构,本地配置文件中的任何声明将优先于全局或系统配置文件中的一个声明.

但是,如果设置存在中说,全球文件(比如代理),并没有出现在本地文件确实是设置,然后使用代理从全局设置?这意味着在应用层次结构规则之前,Git可以处理所有配置文件中的所有设置.

然后,在上面的例子中,如果代理从全局设置被连同我的本地配置文件中的其他设置使用我怎么可以重写呢?

Mar*_*ger 19

如何确定我的Git bash客户端正在使用哪个gitconfig文件?

您可以使用该--show-origin选项

git config --list --show-origin
Run Code Online (Sandbox Code Playgroud)

这将显示从中获取每个设置值的文件.

我可以覆盖正在使用的Git配置文件中的设置吗?

您可以通过将要使用的值放在更高优先级的源中来覆盖低优先级源中的设置.

我已经阅读了你的例子,我真的不确定我是否得到了这个问题.如果代理设置在您的全局文件中,那么正如您已经指出的那样,您可以通过在本地文件中放置一个值来覆盖它.


mea*_*gar 3

这意味着 Git 在应用层次结构规则之前会处理所有配置文件中的所有设置。

是的。结果是相加的。每个级别中的设置都会与上一个级别中的设置合并。当两个级别指定相同的设置时,较具体的较低设置将覆盖较不具体的设置。

正如git 配置文档明确指出的那样:

每个存储库中的 .git/config 文件用于存储该存储库的配置,而 $HOME/.gitconfig 用于存储每个用户的配置作为 .git/config 文件的后备值。文件 /etc/gitconfig 可用于存储系统范围的默认配置。

至于你的第二个问题,

然后,在上面的示例中,如果全局代理设置与本地配置文件中的其他设置一起使用,我如何覆盖它?

在项目的本地配置中提供更具体的设置。