を使用して git リポジトリを検索するときに、特定のパス/ディレクトリ/ファイルを除外する方法はありますか?通常のコマンドのオプションgit grep
に似たものはありますか?--exclude
grep
直接使用すると大きな git リポジトリで実行速度が遅くなりすぎるgit grep
ため、を使用する必要があります。grep
ベストアンサー1
git 1.9.0 では、s に「マジック ワード」exclude
が追加されました。したがって、一致するものを除くすべてのファイルpathspec
を検索する場合は、次のようにします。foobar
*.java
git grep foobar -- ':(exclude)*.java'
または、!
exclude の「短縮形」を使用します。
git grep foobar -- ':!*.java'
git バージョン 2.12 まででは、 exclude を使用する場合pathspec
、少なくとも 1 つの "inclusive" が必要であることに注意してください。上記の例では、 の後のどこかに (現在のディレクトリの下にあるすべてを再帰的に含める) もpathspec
追加する必要があります。git バージョン 2.13 ではこの制限が解除され、がなくても機能します。./*
--
git grep foobar -- ':!*.java'
./*
pathspec
アットマークで許可されているすべての「魔法の言葉」については、良い参考資料があります。git-scm.com(あるいは単にgit help glossary
)。