dotfilesリポジトリで管理したgitconfigはHOMEではなくXDG_CONFIG_HOME配下に置くとよい

GitHub でバージョン管理している.gitconfig を HOME 直下に置くのをやめ、 ~/.config/git/config に置くようにした。最近の Git client では XDG_CONFIG_HOME に設定を置けるようになっており、 ~/.config/git/config > ~/.gitconfig > repository 下の .gitconfig という順番で設定が参照される。

Git 管理下の .gitconfig を HOME に置かないことでメリットが 2 つあった。

今まで Git 管理したくない設定は別途 .gitconfig.local のようなファイルに書き込み、以下のような記述で.gitconfig から読み込ませるということをやっていたが不要になった。単純にそういった内容は~/.gitconfig に設定を書いておけば良い。

[include]
path = ~/.gitconfig.local

2つ目に意図せず.gitconfig に diff が発生してしまう事が無くなった。

3rd party の Git アプリケーションを使っていると credential 絡みの設定を勝手に.gitconfig へ書き込まれ、Git に diff が発生してウザいなと思うことがよくあった。 git config —add —global した際は XDG_CONFIG_HOME ではなく HOME の .gitconfig へ優先的に設定が書かれるようなので、Git に要らない diff が生まれるのが避けられた。

—global

For writing options: write to global ~/.gitconfig file rather than the repository .git/config, write to $XDG_CONFIG_HOME/git/config file if this file exists and the ~/.gitconfig file doesn’t.

https://git-scm.com/docs/git-config#Documentation/git-config.txt---global

以上2つの理由から、Git 管理している .gitconfig は XDG_CONFIG_HOME 下に置くようにして少し快適になった。

Tweet