Git默认核心配置来自哪里

时间:2018-12-20 08:24:35

标签: git

我知道Git中系统,全局和本地配置之间的区别。而且我知道本地配置存储在.git / config文件中

但是,当我对存储库进行新的克隆时,本地配置已被填充,因此例如,我看到:

[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true

我的问题是-这些默认本地配置来自哪里,如何更改这些默认设置?

我知道我可以更改本地配置,但是有两个问题:

  1. 下一个克隆将获得相同的默认值,我不想要
  2. 我为多个用户维护一个存储库,所以我希望每个人都可以更改它

预先感谢

2 个答案:

答案 0 :(得分:3)

  

我的问题是-这些默认本地配置来自哪里,如何更改这些默认设置?

大多数情况下-这些不是默认值。这不是您应该更改的配置,这是有关系统信息的缓存。

例如,当您创建存储库时,git会检测您的文件系统是否区分大小写。它将core.ignorecase设置写为缓存,这样以后就不必再次检测到它,否则对于每个git命令来说都是浪费时间。

您不应更改此设置;它会影响git在文件系统中的运行方式。同样,它不是默认设置,而是系统检测到的行为的缓存。

logallrefupdates例外,它确实是配置。但是,此克隆(与任何其他配置一样)不能被克隆,您应该找到一种机制来带外分发配置(例如init脚本)。

(但是请勿更改core.ignorecase之类的设置。)

答案 1 :(得分:0)

您可以运行以下命令:

git config --list --show-origin

这将为您提供全局设置每个配置的文件列表。可以在此post

上找到更多详细信息