Вы можете использовать git log "--pretty=%h %D"
(например), чтобы получить журнал коммитов с их ссылками, а затем передать его через скрипт вроде этого (здесь, в Python 3.x), чтобы сгруппировать список коммитов по последним (самым новым).) обнаружен тег.
import sys
import collections
last_tag = None
commits_per_tag = collections.defaultdict(set)
for line in sys.stdin:
line = line.strip()
if not line:
continue
commit, _, refs = line.partition(" ")
if refs.startswith("tag:"):
last_tag = refs.split(", ")[0]
commits_per_tag[last_tag].add(commit)
for last_tag, commits in sorted(
commits_per_tag.items(),
key=lambda pair: len(pair[1]),
reverse=True,
):
print(last_tag, len(commits))
Например, с babel получаются следующие результаты:
$ git log "--pretty=%h %D" | python3 so54787120.py
tag: 1.0 708
tag: 2.3.1 125
tag: dev-2a51c9b95d06 118
tag: v2.4.0 72
tag: 2.0 66
tag: v2.6.0 44
tag: 2.2.0 37
None 32
tag: 2.3.4 25
tag: v2.5.0 23
tag: 1.2 19
tag: v2.5.2 18
tag: 1.1 14
tag: 1.3 13
tag: 2.3.2 11
tag: v2.5.1 6
tag: v2.5.3 5
Ваш пробег может варьироваться в зависимости от линейности вашей истории.