Gitconfig с символической ссылкой разрешает include относительно символической ссылки

Gitconfig с символической ссылкой разрешает include относительно символической ссылки

Я добавил gitconfig в мои dotfiles. Чтобы все было аккуратно, симлинк ~/.gitconfigуказывает на настоящий файл, который находится в другом месте.

Я хочу иметь такой раздел:

[include]
    path = other-file.txt

в моем gitconfig. Но это не работает, потому что он пытается включить ~/other-file.txt(относительно символической ссылки), которая не существует. Вместо этого мне приходится использовать:

[include]
    path = /absolute/path/to/other-file.txt

Но если я когда-нибудь перемещу свой каталог dotfiles, то теперь этот include сломается. Есть ли способ заставить работать относительный путь?

решение1

Нет, нет способа заставить Git разрешать символические ссылки до вычисления относительного пути. В документации конкретно говорится, что это относительно загружаемого файла, который является ~/.gitconfig.

Однако Git поддерживает несколько файлов для каждого пользователя. Есть $HOME/.gitconfigи $XDG_CONFIG_HOME/git/config. В последнем случае, если $XDG_CONFIG_HOMEне задано, по умолчанию используется ~/.config. В результате вы можете сохранить конфигурацию Git в , ~/.config/git/configа затем также иметь ~/.config/git/other-file.txt, что должно работать правильно.

Связанный контент