ファイルが.gitignoreで無視されているか確認したい

git statusに表示されないファイルが、.gitignoreによって無視されているのか、単にコマンドの見落としなのか判断しづらい場合がある。git check-ignoreコマンドを使うと、指定したファイルが無視対象かどうかを確認できる。

$ cat .gitignore
*.log

$ git check-ignore app.log
app.log

$ git check-ignore app.txt
$ echo $?
1

無視対象のファイルはパスを出力し、終了コード0を返す。無視対象でないファイルは何も出力せず、終了コード1を返す。

-v オプションで無視されている理由を確認する

-vオプションを付けると、どの.gitignoreのどの行がマッチしたのかを確認できる。

$ git check-ignore -v app.log
.gitignore:1:*.log	app.log

.gitignore:1:*.logの部分から、.gitignoreの1行目にある*.logというパターンでマッチしたと分かる。複数の.gitignoreが絡む場合や、パターンが複雑な場合に、どのルールが原因で無視されているのか特定するのに役立つ。

グローバルな.gitignoreを設定したい場合は【Git】グローバルな.gitignoreを設定する も参照。