Gitは、インデックスにないディレクトリを検出すると、ファイルの検索を停止します。しかし、上記の場合、無視パターンに一致するすべてのファイルを検索するようにgitに指示しています。したがって、すべてのディレクトリと検索ファイルに移動することをお勧めします。
これもgit ls-files
動作と一致します。与えられた:
$ tree
.
├── foo.o
└── lib
├── TLib_d.lib
└── TLib.lib
1 directory, 3 files
$ cat .gitignore
*.lib
次のコマンドを実行します。
$ git ls-files -o
foo.o
lib/TLib.lib
lib/TLib_d.lib
$ git ls-files -o -i --exclude-standard
lib/TLib.lib
lib/TLib_d.lib
$ git clean -n
Would remove foo.o
Would not remove lib/
$ git clean -nd
Would remove foo.o
Would remove lib/
$ git clean -nX
最後のコマンドはファイルを出力しません。しかし、もしそうならそれは素晴らしいでしょう:
$ git clean -nX
Would not remove foo.o
Would not remove lib/
Would remove lib/TLib.lib
Would remove lib/TLib_d.lib