ちょっと便利だったので自分用にメモ。
- git grepにはgrepに引っかかったファイル名を出す --name-onlyオプションがある
- またgit grepでは逆にgrepに引っかからなかったファイル名を出す --files-without-matchオプションがある
これを利用すると以下のコマンドで、ある文字は含まれているけど、ある文字は含まれていないファイルをワンライナーで探せる。
例えば「ほげほげ」は含まれているファイル中で、「ふがふが」が含まれていないものを探すには以下のようにする。
$ git grep --name-only -e 'ほげほげ' | xargs git grep --files-without-match -e 'ふがふが'
適当にやっただけなので、他にいい方法がありそうではある。