#git #git-config
#git #git-config
Вопрос:
Все примеры, которые я видел для глобальных файлов .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
Я никогда раньше не видел [заголовок], вложенный в другой [заголовок]. Что-то вроде этого:
[user]
name = John Doe
email = example@email.com
[foo]
bar = baz
Возможно ли это при каких-либо обстоятельствах? Может ли глобальный файл .gitconfig быть вложенным на несколько слоев глубиной?
Комментарии:
1. Ищете только ответ «нет»?
Ответ №1:
Синтаксис для файлов конфигурации Git — это модифицированный синтаксис INI-файла.
Некоторые модифицированные синтаксисы INI-файлов (или синтаксисы, если вы хотите подделать английское множественное число от греческих корней) допускают такую вложенность, но 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
файле.
Ответ №2:
Возможно ли это при каких-либо обстоятельствах?
Нет.
Это всегда «возможно». Вы можете написать свой собственный синтаксический анализатор или патч git
для поддержки такого странного соглашения.
Может ли глобальный файл .gitconfig быть вложенным на несколько слоев глубиной?
Нет.
Формат представляет собой INI-файл. Начальные пробелы игнорируются, так <space><space><tab>[foo]
что это то же самое, что и just [foo]
и представит новый раздел.