git grep 検索から特定のディレクトリ/ファイルを除外する方法 質問する

git grep 検索から特定のディレクトリ/ファイルを除外する方法 質問する

を使用して git リポジトリを検索するときに、特定のパス/ディレクトリ/ファイルを除外する方法はありますか?通常のコマンドのオプションgit grepに似たものはありますか?--excludegrep

直接使用すると大きな 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)。

おすすめ記事