当月のマージコミット数を集計したい
現チームでは毎月のリリース数を報告するのが通例なのですが、リリース数の多い月だと目視の集計が大変過ぎる!!
「よし、コマンドで抽出しよう!」
今月実際に以下のコマンドでマージコミットを抽出しました。
まずはブランチをmasterブランチに切り替えて
$ git checkout master
以下のコマンドで抽出します。
$ git log --since=2020-01-01 --merges --pretty=format:"%s" | grep "Merge" | sort | uniq
それぞれのオプションの詳細です。
【git logオプション】
--since=YYYY-MM-DD : 指定日~現在まで
--merges : マージコミットのみ
--pretty=format:"%s" : 件名のみ
【grepオプション】
sort : 並べ替え
uniq : 重複なし(連続する重複を集約するため、sortと組み合わせると正しく集約可能)
すると以下のように抽出されます。
Merge branch 'XXX-180'
Merge branch 'XXX-216'
Merge branch 'XXX-241'
Merge branch 'XXX-304'
Merge branch 'XXX-312'
Merge branch 'XXX-313'
Merge branch 'XXX-320'
Merge branch 'XXX-326'
Merge branch 'XXX-330'
Merge branch 'XXX-334'
Merge branch 'XXX-338'
Merge branch 'XXX-376'
Merge branch 'XXX-385'
Merge branch 'XXX-402'
マージコミットを抽出しているので直接masterブランチ上でコミットしていたり、チェリーピックをした場合などは抽出されないので注意が必要
参考
https://qiita.com/take4s5i/items/15d8648405f4e7ea3039
https://qiita.com/harukasan/items/9149542584385e8dea75
https://gotohayato.com/content/490/
https://qiita.com/m_norii/items/4ea31acf727d384faa23
http://blog.nomadscafe.jp/2012/07/sort-uniq.html