読者です 読者をやめる 読者になる 読者になる

Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

Gitブランチ検索を可能とするgit grepは実際便利

git

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して閉じないといけません。
それを嫌う場合、ファイルに出力してしまうのも手ですね。