~/.gitconfigをホームディレクトリのトップから移動させる

要約

gitXDG Base Directory に対応しているため、環境変数で設定して~/.gitconfig を移動させれば読んでくれる。

$ export XDG_CONFIG_HOME="${HOME}/.config"
$ mkdir $XDG_CONFIG_HOME/git
$ mv ~/.gitconfig $XDG_CONFIG_HOME/git/config

詳しい内容

gitの設定ファイルは、同時に存在していれば~/.gitconfigの方が優先される。 デフォルトでは環境変数が設定されいても~/.gitconfigが作成される。

$ export XDG_CONFIG_HOME="${HOME}/.config"

$ git config --global user.name "John"
$ cat ~/.gitconfig
[user]
	name = John

設定ファイルを新しいディレクトリにコピーする。

$ mkdir $XDG_CONFIG_HOME/git
$ cp ~/.gitconfig $XDG_CONFIG_HOME/git/config

削除しないと$XDG_CONFIG_HOME/git/configよりも~/.gitconfigが優先される。設定も~/.gitconfigに書かれる。

$ git config --global user.name "Jack"
$ cat ~/.gitconfig
[user]
	name = Jack

$ cat $XDG_CONFIG_HOME/git/config
[user]
	name = John

$ git config --list
user.name=John
user.name=Jack

$ rm ~/.gitconfig

これでgitから設定が読まれる

$ git config --global user.email [email protected]
$ cat $XDG_CONFIG_HOME/git/config
[user]
	name = John
	email = [email protected]

$ git config --list
user.name=John
[email protected]

設定も反映されるようになる。

おわりに

明示的に指定しなければ反映されないとは… XDG_Base_Directory はもっと普及しても良いと思います。

参考