よしたく blog

ほぼ週刊で記事を書いています

~/.config/git/ignoreでグローバルなgitignoreを設定してファイルを除外する

背景

.DS_Store のようなファイルを毎回.gitignoreに書くのがめんどくさくなり、グローバルに設定できないか調べました。

解決方法

  1. ~/.config/gitignoreファイルを作る
  2. .gitignoreと同様に記述する
.DS_Store

これだけで完了です。

Patterns which a user wants Git to ignore in all situations (e.g., backup or temporary files generated by the user’s editor of choice) generally go into a file specified by core.excludesFile in the user’s ~/.gitconfig. Its default value is $XDG_CONFIG_HOME/git/ignore. If $XDG_CONFIG_HOME is either not set or empty, $HOME/.config/git/ignore is used instead.

あらゆる場面で Git に無視させたいパターン (例えば、バックアップファイルやエディタで生成した一時ファイルなど) は、~/.gitconfig の core.excludesFile で指定するファイルに格納します。このファイルのデフォルト値は $XDG_CONFIG_HOME/git/ignore です。XDG_CONFIG_HOME が設定されていないか空の場合は、代わりに $HOME/.config/git/ignore が使用されます。

git-scm.com

別の解決方法

別の解決方法もあります。 ~/.gitignore_globalを作成し、このファイルに.gitignoreと同様に記述していく方法です。 これは.gitconfig.gitignore_globalを読み取るように設定をする必要があります。

git config --global core.excludesfile ~/.gitignore_global

まとめ / 感想

~/.gitignore_globalで設定している人も多いようですが、

  • ホームディレクトリにファイルが置かれる形になること
  • .gitconfigに読み取る設定をしなければならないこと

があるので個人的には~/.config/git/ignoreに書いていく方法が好きです。