Подтвердить что ты не робот

Найти информацию о тегах для данной фиксации

Есть ли способ получить тег, связанный с номером фиксации, в Git?

Для выпусков я обычно отмечаю что-то вроде v1.1.0. Во время моей сборки script создаю файл fwVersion.c, содержащий текущую информацию git. В настоящее время у меня есть фиксация и информация о филиале в файле, но я хотел бы добавить тег.

Возможно ли это?

4b9b3361

Ответ 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).