Gitでファイルがignoreされている理由を調べる

gitを使うなら、.gitignoreは使う。

イチから自分で設定することもあるけど、そういうのも面倒なので、 以下のようなサイトからテンプレートを引っ張って来ることが多い。

github/gitignore

とても便利だが、なにぶん自分で書いた.gitignoreではないので ときどき予期せずファイルが無視されてしまうことがある。

こういったテンプレートはたいていよく作られているので、 どちらかというとファイル名をignoreされないものにしたほうが良いが、 なんにしても、なぜそのファイルがignoreされているのかを知る必要はある。

git check-ignoreというコマンドがあり、それに-vオプションを付けることで、理由を調べられる。

git check-ignore -v <ファイル名>

実行すると以下のように、「どの.gitignoreの何行目にマッチしてファイルがignoreされている」 ということがわかりやすく表示される。

$ git check-ignore -v node_modules/rollup/package.json
.gitignore:16:/node_modules/ node_modules/rollup/package.json

ディレクトリ以下のすべてのファイルについて調べるときは、たとえば bashのglobstarオプションを有効にして、以下のようにする。

shopt -s globstar
git check-ignore -v **/*