git grepは基本grepと同じ使い方ができます。
独自の機能として
- git管理ディレクトリのみを捜索
- ブランチを跨いだ捜索も可能
- 本家にはない、ワード条件の特殊構文
があります。
多人数で管理しているプロジェクトでは威力を発揮しそうです。
実例
複雑な条件式
git grep -e '#define' --and \( -e MAX_PATH -e PATH_MAX \)
#define を含み、かつMAX_PATHまたはPATH_MAXを持つモノ。
"--and"は本家grepにはないもので、入り込んだ奴を書く時にも楽です。
複数ディレクトリ
bashで"SLEEP"という文字列を全てのディレクトリから探し出す
$ for var in `git branch | sed "s/\*/ /g"`; do git grep "SLEEP" ${var} --; done
毎回毎回、qして閉じないといけません。
それを嫌う場合、ファイルに出力してしまうのも手ですね。