Получить самый последний тег на коммите

У меня есть рабочий процесс, где я хочу использовать git-теги для отправки релизов через мой конвейер.

git init
touch readme.md
git add .
git commit -m "com1"
git tag -a 1.0.0-rc.1 -m "t1"

touch xxx
git add .
git commit -m "com2"
git tag -a 1.0.0-alpha1 -m "t2"
git tag -a 1.0.0-rc1 -m "t2"
git tag -a 1.0.0 -m "r1"

Мой журнал выглядит так:

commit 132fa7712234e0ea0ee72b55123d9fbfd7dbe75a (HEAD -> master, tag: 1.0.0-alpha1, tag: 1.0.0-rc1, tag: 1.0.0)
Author: Ryan 
Date:   Mon Nov 26 11:08:21 2018 +0000

com2

commit 97c10b1c203bc34f1234ba38e214c9f72cc4a03a (tag: 1.0.0-rc.1)
Author: Ryan 
Date:   Mon Nov 26 11:07:43 2018 +0000

com1

Как я могу гарантировать, что возвращается только самый последний тег?

1 ответ

Решение
git describe <commit ID>

делает работу

Он возвращает самый последний тег, достижимый этим коммитом, затем, если тег не находится в самом коммите, добавляет описание указанного коммита (количество коммитов "вдали" + идентификатор тегового коммита)

Смотрите документацию для опций и деталей.

В качестве альтернативы, если, как показывают комментарии, вы хотите, чтобы эта информация появлялась в выходных данных git log, попробуйте опцию --decorate=full

Другие вопросы по тегам