Найти информацию о тегах для данной фиксации
Есть ли способ получить тег, связанный с номером фиксации, в Git?
Для выпусков я обычно отмечаю что-то вроде v1.1.0. Во время моей сборки script создаю файл fwVersion.c, содержащий текущую информацию git. В настоящее время у меня есть фиксация и информация о филиале в файле, но я хотел бы добавить тег.
Возможно ли это?
Ответы
Ответ 1
Проверьте документацию на git describe
. Он находит ближайший тег для данной фиксации (т.е. Тега, указывающего на предка фиксации) и описывает это commit в терминах тега.
Если вы хотите узнать только, на что указывает фиксация тегом, вы можете проверить вывод:
git describe --exact-match <commit-id>
Ответ 2
Если вы хотите, это первый тег, содержащий commit, а затем:
git describe --contains <commit>
дает лучший ответ ИМО. Если у вас частые теги, чем использование тега git --contains "на старой фиксации в большом репозитории, может занять некоторое время, и вы получите все теги, которые содержат эту фиксацию.
Эта форма описания git выполняется очень быстро и дает вам одно выходное значение, которое является первым тегом, содержащим фиксацию и как далеко назад ваша фиксация.
Ответ 3
Вы можете найти эту информацию в руководстве
git tag --contains <commit>
Ответ 4
Извините, я не знал, как просто добавить комментарий, поэтому отправляю ответ...
Я нашел комбо обоих вершин, чтобы дать мне то, что я хотел так:
git describe --tags --exact-match <commit-id>
Это дает вам теги (метки), которые являются ТОЛЬКО для этого фиксации и для тех, у кого нет аннотации.
Полезно, если вы хотите найти теги и не беспокоиться о том, чтобы удалить форматирование (например, для Дженкинса).
например. $ git describe --tags --exact-match head~2
Дает вам:
$ ReleaseBeta
Ответ 5
Как насчет этого?
git tag --points-at <commit-id>
Он дает вам все теги, которые данный коммит имеет (в то время как git describe
дает только один), и не включает теги в потоки потомков (например, git tag --contains
).