git-grep
には --exclude
オプションがないので ls-files
や パイプラインで除外するしかないと思っていたのだけど、指定するパスにglobのワルドカードパターンで否定条件を渡せることを知った。
# Vendor/ ディレクトリは除外したい
git grep amazon -- ':!Vendor/' .
ダブルダッシュは --
以後をオプション(--hoge
とか)でなくコマンドの引数テキストになることを明示していて、そこにワイルドカードの既述を食わせるために必要らしい。
- What does "--" (double-dash) mean? (also known as "bare double dash") - Unix & Linux Stack Exchange
- Man page of GLOB
参考
How to exclude certain directories/files from git grep search - Stack Overflow
で知った。
どの環境のシェルやgrepでも動くのかはまだ知らない。