ずっとgit logの内容を検索するときに-Sオプションを使っていたが、実は近いオプションに-Gオプションもあり、探したい内容によっては使い分けないとダメということを初めて知った...
詳しくはhttps://git-scm.com/docs/git-logの-Sと-Gのドキュメントを見てほしい。簡単にまとめると
-S
は指定した文字列の出現回数が変わるdiffがあるcommitを検索する-G
は指定した正規表現がマッチする文字列がdiffにあるcommitを検索する
ドキュメントの事例部分が結構わかりやすくて、以下のようなdiffがあった場合
+ return frotz(nitfol, two->ptr, 1, 0); ... - hit = frotz(nitfol, mf2.ptr, 1, 0);
-S frotz
で検索をかけると、frontsの出現回数は変わってないのでマッチしない-G frotz
で検索をかけると、diffの中にfrotzという文字列は存在するのでマッチする
この差を意識しないと意図したcommitを探すことが出来ない。使い分けよう。