条件指定してコミットを絞り込む
全ブランチのコミット
git log --all
あるブランチにはあるが、あるブランチにはないコミット
git log master..br1 # br1にあるが、masterにないコミット(br1とmasterの差分)
git log master ^br1 # masterにはあるが、br1にはないコミット
git log --all --not br1 # br1にないコミット
git log origin/master..master # ローカルのmasterにはあるが、リモート(origin)のmasterにはないコミット
直近N個のコミット
git log -3
あるAuthor(またはCommitter)のコミット
git log --author taro
git log --author yamada.taro@example.com
git log --committer taro
git log --committer yamada.taro@example.com
ある日時のコミット
git log --after 3.days.ago # 3日前から現在までのコミット
git log --before 2017-08-01 # 2017-08-01以前のコミット
git log --after 2017-08-01 --before 2017-08-31 # 2017-08-01から2017-08-31までのコミット
マージコミットを除外
git log
* ff3fb72 (HEAD -> master) Merge branch 'br1'
|\
| * 7183284 (br1) baz
* | 1bff43e foo
* | 867ad2f bar
|/
* 4670f69 hoo
git log --no-merges
* 7183284 (br1) baz
| * 1bff43e foo
| * 867ad2f bar
|/
* 4670f69 hoo
コミットメッセージ検索
git log --grep="Modified foo.txt" # "Modified foo.txtを検索してマッチするコミット
git log --grep="[Mm]odified foo.txt" # 正規表現が使える
逆順に表示
git log --reverse # 逆順に表示
git log --reverse -10 # この場合、直近10件が逆順に表示