git shortlog
コマンドを使用すると、ユーザごとのコミットを一覧で表示することができます。
何もオプションを付けないで実行すると、ユーザ名のアルファベット順に、コミット数とそれぞれのコミットのタイトルが列挙されます。
$ git shortlog
Rei Ayanami (3):
Fix xxx yyy zzz
Encapsulate FileCache in ProgramFacade
Remove unnecessary comments in utility classes
Shinji Ikari (4):
Remove currentTimeMillis() calls from FocusPosition
Package information for com.example.foo
Apply LRU caching for event information
Emphasize FPS display
...
デフォルトではアルファベット順にユーザが表示されますが、-n
オプションを付けるとコミット数の多いユーザ順に表示されます。
さらに、-s
オプションを付けることで、コミット数だけが表示されるようになります。
-e
オプションは、名前に加えてメールアドレスも表示します。
$ git shortlog -nse
6183 Doppo Orochi <doppo-orochi@example.com>
1323 Kaoru Hanayama <kaoru-hanayama@example.com>
1201 Kaiou Retsu <kaiou-retsu@example.com>
1043 Katsumi Orochi <katsumi-orochi@example.com>
832 Izou Motobe <izou-motobe@example.com>
...
これを見れば、誰がたくさんコミットしているかを調べることができます。
revision range の指定によって、コミット時期を絞り込んで集計することもできます。
$ git shortlog -nse --since="1 year ago" --until="2018-12-01"
git shortlog
による統計情報は、異なるユーザ名やメールアドレスを使ってコミットされたものは別々に集計されてしまいます。
このような場合は、.mailmap
ファイルを用意することで、同一のユーザによるコミットとして集計することができます。
詳しくは git help shortlog で表示されるヘルプを参照してください。