.gitignore
には追跡(tracked)したくないファイル名パターンを記載しますが、
設定が肥大化するとファイルのどこで 追跡を無視しているのか がわからなくなることがあります。
また以前弊社のブログでも取り上げましたが、.gitignore
だけでなく、 .git/info/exclude
ファイルも同様に 追跡しないファイル を定義することができます。
追跡を無視したファイルを確認する
「どのファイルで」「どの設定で」あるファイルを追跡しないのかを知りたいとき、git check-ignore
が役立ちます。
シンプルな使い方は、-v
オプションを付与し、設定状況を知りたいファイル/ディレクトリを引数に与えるだけです。
$ git check-ignore -v .env
.gitignore:4:.env .env
ある程度自明ですが、見方は以下の通りです。
左:中:右 ファイル名
- 左
-
設定が記述されているファイル
- 中
-
設定が記述されている行数
- 右
-
設定内容
- ファイル名
-
対象のファイル
-n
オプションを付与すると、追跡中のファイルも表示されます。
$ git check-ignore -v -n *
.gitignore:1:node_modules/ node_modules
:: package-lock.json
:: package.json
追跡するファイル(無視されていないファイル)については、
対象となる設定が存在しないため、:
で区切られた左側の表示が空になっています。
「どうしてこのファイルを追跡できないのだろう…」と困ったときに役立ちました。ぜひご活用ください。