LoginSignup
5
2

More than 1 year has passed since last update.

gitのcommit数を簡単に集計する方法

Posted at

はじめに

メンバーの評価まわりをする背景から、ふとgitのcommitを人単位で集計したくなったことがありました。

  • 誰がどれくらいcommitしているのか
  • 対象期間(評価期間)に1番commitしてるのは誰なのか
  • このリポジトリに関して1番詳しいのは誰なのか

集計することでこのあたりが知れるようになります。

コマンド

git shortlog -nse

gitに既に用意されていました。
オプション指定なしだとアルファベット順に表示されます。
-n: コミット数多い順
-s: コミット数のみ表示
-e: メアドも表示

期間指定は以下の通りです。

# 直近半年の間でコミットの多い人を調べる
git shortlog -nse --since="6 month ago"

# 2021年でコミット数が多い人を調べる
git shortlog -nse --since="2021-01-01" --until="2021-12-31"
実行結果例
コミット数 人
5000  hoge
4000  foo
3000  bar

マッピング

人によっては異なるメールアドレスでのコミットがありました。
これらを同一人物として扱って集計するために.mailmapを作成しました。
必要に応じて使ってください。
こちらを参考にしました。
https://git-scm.com/docs/gitmailmap
分かりにくかった点としては2つしか横並びで書けないようで3つ以上並べても適用されませんでした。
3つ以上の場合は縦に並べて書くと反映されました。

.mailmap
Joe R. Developer <joe@example.com>
Joe R. Developer <joe@example.com> Joe <bugs@example.com>
Jane Doe <jane@example.com> <jane@laptop.(none)>
Jane Doe <jane@example.com> <jane@desktop.(none)>
Jane Doe <jane@example.com> Jane <bugs@example.com>

別の方法

ちなみに後から知ったんですが、githubを使っている場合はリポジトリの「Insights」タブの「Contributors」から同じような情報を得ることができます。
こちらだとコマンド実行も不要でアクセスするとすぐ見れるのでおすすめです。(こっちの方が楽)
最上部のグラフをドラッグすると範囲指定も可能です。

スクリーンショット 2022-01-13 12.25.13.png

まとめ

「誰がどれだけ詳しいか?」
「困った時に誰に聞けば良いか?」
みたいな指標にも使えるかと思います。
色んなプロダクトで色んな範囲指定で集計して遊んでみてください!

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2