あのコミットどこだっけ?というときに使うgitコマンド

まずは基本の↓これ

コミットメッセージから探す場合

git log --grep (msg)

変更したコードベースで探す場合

git log -S (diff)


また、雑にコミットを積んで後から直す生活していると、たまに意図しないブランチにコミットを積んでいて後から探すのに困ったりする。 こんな場合は --all オプションが便利。

単なる git log だと今いるブランチから辿れるコミットしか検索してくれないが --all だと全てのブランチやタグから横断して検索できる


余談

git log --grep='#1234' --all --format=format:%H | xargs -n1 git branch -r --contain

こんな感じにすると、マージコミットが入ってるブランチだけを探せて便利‥ということがあるかもしれない。


ここらへんの話は ruby-jp の #ruby-hacking での会話を眺めて探したり考えたりしたものです。
もっと簡単に書けたりするかもしれないので、そういうのがあったら教えて欲しい。