シンボリックリンクされたgitconfigは、シンボリックリンクを基準にincludeを解決します。

シンボリックリンクされたgitconfigは、シンボリックリンクを基準にincludeを解決します。

私はドットファイルに gitconfig を追加しました。整理するために、 のシンボリックリンクは~/.gitconfig別の場所にある実際のファイルを指します。

次のようなセクションを作成したいと思います。

[include]
    path = other-file.txt

~/other-file.txt私の gitconfig で。しかし、これは存在しない (シンボリックリンクに相対的な)を含めようとするため機能しません。代わりに、以下を使用する必要があります。

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

しかし、dotfiles ディレクトリを移動すると、このインクルードは壊れてしまいます。相対パスを機能させる方法はありますか?

答え1

いいえ、相対パスを計算する前に Git にシンボリックリンクを解決させる方法はありません。ドキュメントには、ロードされるファイル ( ) を基準に相対的であると明記されています~/.gitconfig

ただし、Git はユーザーごとに複数のファイルをサポートしています。$HOME/.gitconfigと があります$XDG_CONFIG_HOME/git/config。後者の場合、$XDG_CONFIG_HOMEが設定されていない場合は、デフォルトで になります~/.config。その結果、Git 構成を に保存し~/.config/git/config、 も持つことができ~/.config/git/other-file.txt、これらは正しく動作するはずです。

関連情報