core.symlinks条目在git config列表中输出了两次?

时间:2019-01-27 16:43:17

标签: git git-config

我在配置列表*中发现以下条目增加了一倍:

git config -l | sort
... (irrelevant here)
core.symlinks=false
core.symlinks=false
... (irrelevant here)

经过短暂的思考,我想我已经弄明白了为什么:嘿,当然!我没有为配置列表指定源,因此我看到的输出是来自所有源的条目的串联...(我记得之前已经观察到该结果,因为我在本地和全局级别都设置了条目) (在a short visit in the doc之后),我分别进行了检查:

git config -l --local | sort
... (irrelevant here)
core.symlinks=false
... (irrelevant here)

git config -l --global | sort
(no line about core.symlinks at all)

奇怪。 local中的一个,global中一个。也许system

git config -l --system | sort
(no line about core.symlinks at all)

在这一点上,我无法再支持我的第一个猜测了……那么“其他”条目是从哪里来的呢?如果不是来自globalsystem呢?仅仅是git构建我丢失的配置列表输出并导致这种奇怪结果的方式吗?


*(在搜索完全不相关的内容时。因此,我是第一个承认这个问题对完成任何任务都不重要的人,我只是想找出我观察到的原因是什么,如果有人知道的话)在他们的头顶上)

1 个答案:

答案 0 :(得分:1)

要查看当前具有的所有git设置(在用户级别和通用级别):

git config --list --show-origin
  

注意
  请记住,如果它位于包含git项目的目录中,那么您还将获得它的配置。


git配置级别和文件 1

在我们进一步讨论git config的用法之前,让我们花点时间介绍一下配置级别。 git config命令可以接受参数来指定要在哪个配置级别上进行操作。提供以下配置级别:

  • -本地
     默认情况下,如果未传递任何配置选项,git config将写入本地级别。本地级配置应用于调用上下文存储库git config。本地配置值存储在文件中,该文件可以在存储库的.git目录中找到:.git/config

  • -全局
    全局级别配置是特定于用户的,这意味着它将应用于操作系统用户。全局配置值存储在用户主目录中的文件中。在UNIX系统上~ /.gitconfig在Windows上C:\Users\<username>\.gitconfig

  • -系统
    系统级配置应用于整个计算机。这涵盖了操作系统上的所有用户和所有存储库。系统级配置文件位于系统根路径之外的gitconfig文件中。在UNIX系统上为$(prefix)/etc/gitconfig。在Windows上,可以在Windows XP的C:\Documents and Settings\All Users\Application Data\Git\config和Windows Vista及更高版本的C:\ProgramData\Git\config上找到此文件。

因此,配置级别的优先级顺序为:本地,全局,系统。这意味着当寻找配置值时,Git将在本地级别启动并冒泡至系统级别。