全局 .gitconfig 文件可以嵌套多层吗?

Can a global .gitconfig file be nested multiple layers deep?

我见过的所有全局 .gitconfig 文件的例子都是这样的:

[user]
    name = John Doe
    email = example@email.com

[filter "lfs"]
    clean = git-lfs clean -- %f
    smudge = git-lfs smudge -- %f
    process = git-lfs filter-process
    required = true

我以前从未见过 [header] 嵌套在另一个 [header] 中。像这样:

[user]
    name = John Doe
    email = example@email.com
    [foo]
        bar = baz

在某些情况下这可能吗?全局 .gitconfig 文件可以嵌套多层吗?

Is this possible in some circumstance?

没有

总是“可能的”。您可以编写自己的解析器或补丁 git 来支持这种奇怪的约定。

Can a global .gitconfig file be nested multiple layers deep?

没有

格式是 INI file. Leading whitespaces are ignored,因此 <space><space><tab>[foo][foo] 相同,将引入新的部分。

Git 配置文件的语法是修改后的 INI 文件语法。

一些修改后的 INI 文件语法 (or syntaces, if you want to fake up an English plural from Greek roots) 允许这种嵌套,但 Git 不允许。

在Git形式中:

[top "middle"]
    bottom = value

代表git config结构:

git config top.middle.bottom value

(添加 --global--file 指令以选择要设置的文件)。这离嵌套很近了。您会看到这些具有多个 remote 定义,例如:

[remote "origin"]
    url = ...
    fetch = +refs/heads/*:refs/remotes/origin/*
[remote "upstream"]
    url = ...
    fetch = +refs/heads/*:refs/remotes/upstream/*

在本地 .git/config 文件中。