【ツール活用|豆知識】プロジェクトの貢献度を可視化せよ!『git shortlog』でチームの活動をスマートに集計する方法

導入

プロジェクトが大きくなるにつれ、「誰がどのくらいコードを書いているのか」「今回のリリースで誰が中心となって作業したのか」を把握することは、チームビルディングや進捗管理において非常に重要です。しかし、git logを一行ずつ追うのは非効率的です。そんな時、git shortlogコマンドを使えば、コミット履歴を著者ごとにグループ化し、貢献度を瞬時に可視化できます。リソース管理や感謝の意を伝えるためのデータ収集として、この地味ながら強力なコマンドを使いこなしましょう。

基礎知識

git shortlogは、Gitのコミット履歴を解析し、作成者(Author)ごとにコミットメッセージをまとめ上げるコマンドです。デフォルトでは著者名とコミット数、そしてコミットメッセージの要約が表示されます。これを利用することで、プロジェクトの「アクティビティ分析」や、リリースノート作成の際、誰がどの機能に手を加えたかの特定が容易になります。

実装/解決策

基本的にはターミナルで対象のGitリポジトリに移動し、コマンドを実行するだけです。しかし、実務では「コミットメッセージは不要で、単純に貢献数だけを知りたい」というケースがほとんどです。その場合は、-s(–summary)オプションを活用します。さらに、貢献数順に並び替えたい場合は-n(–numbered)オプションを組み合わせるのが鉄板です。

サンプルプログラム

以下のコマンドは、実際の開発現場で最も頻繁に使用される「貢献者ランキング」を表示するコマンドです。


git shortlog -sn


git shortlog -sn –since=”2023-01-01″


git shortlog -n

応用・注意点

現場で活用する上で注意すべき点が2つあります。

一つ目は、著者名の表記揺れです。過去にGitの設定(user.name)を変更している場合や、同じ人物でも別名義でコミットしている場合、別々の著者としてカウントされてしまいます。その場合は、.mailmapファイルを作成し、複数の名前を一つの名義にマッピングすることで正確な集計が可能になります。

二つ目は、Mergeコミットの扱いです。プルリクエストをマージしている場合、マージコミットも「マージした人」のコミットとしてカウントされます。純粋なコード変更量を知りたい場合は、–no-mergesオプションを追加してマージコミットを除外することをおすすめします。

これらを活用すれば、チームの活動状況をより正確に把握し、プロジェクトの透明性を高めることができるでしょう。ぜひ次のリリース準備から取り入れてみてください。

コメント

タイトルとURLをコピーしました