Ответ 1
git describe
должно быть достаточно
Команда находит самый последний тег, доступный из фиксации.
Если тег указывает на фиксацию, отображается только тег.
В противном случае он добавляет суффикс имени тега к числу дополнительных коммитов поверх помеченного объекта и сокращенному имени объекта последнего коммита.С
--abbrev
установлено значение 0, команда может использоваться для поиска ближайшего тэга без суффикса:
[[email protected] git]$ git describe --abbrev=0 v1.0.5^2
tags/v1.0.0
Для тегов, соответствующих определенному шаблону:
git describe --tags --abbrev=0 --match release-*
Для последнего тега для всех ветвей (а не только для последней ветки)
git describe --tags $(git rev-list --tags --max-count=1)