Версия git относительно определенного тега
Мы используем несколько идентификаторов тегов в нашем репо. Например. ABC-1.3.5.234 и DEF-1.2.1.25. Команда Описание дает мне почти то, что я хочу:
Git описать - долго
ABC-1.3.5.234-33-DeadBeef
Но я действительно хотел узнать значение относительно самого последнего тега DEF в моей истории. Есть ли способ указать, какой тег я хочу использовать в качестве основы для расчета относительного расстояния? Могу ли я сделать это с помощью регулярного выражения?
1 ответ
git describe
справочная страница понятна:
Если точное совпадение не было найдено, git description будет проходить через историю коммитов, чтобы найти коммит предка, который был помечен. Тег предка будет выводиться вместе с аббревиатурой SHA-1 входного комитета.
Если во время прогулки было найдено несколько тегов, то будет выбран и выведен тег с наименьшим количеством коммитов, отличным от входного коммитта.
Здесь наименьшее количество коммитов определяется как количество коммитов, которое будет показаноgit log tag..input
будет наименьшее количество возможных коммитов.
Поэтому вам, возможно, придется написать скрипт, который:
git describe
- принять найденный коммит и
git describe
этот коммит - повторяйте, пока не получите тег, который искали
- суммировать все числа
n
дополнительных коммитов поверх найденных отмеченных объектов во время этого цикла - построить и вывести полученную строку:
DEF-xxx-n-DEF_SHA1
,
Просто наткнулась на этот вопрос. Это может помочь:
git describe --match "DEF-*"
Для меня
> git describe --all --match "<tag>"
tags/v0.0.0pre1-334-gbb55666
сделали свое дело.
--all
позволяет искать по всем ссылкам, а не только по тегам--match "<tag>"
указывает тег, который будет использоваться для расчета расстояния.