Как найти первый тег, содержащий git commit?

16

У меня есть идентификатор SHA для коммита, который меня интересует, и я хотел бы узнать, как найти первый тег, который его содержит.

Merryman
источник
Отвечает ли это на ваш вопрос? stackoverflow.com/questions/1474115/…
jasonwryan
Связанный: stackoverflow.com/questions/7923091/…
Сиро Сантилли 新疆 改造 中心 法轮功 六四 事件

Ответы:

8

Как было сказано ранее, это можно сделать с помощью git describe. Однако в вашем конкретном случае вам может быть удобнее запустить программу git name-rev --tags --name-only <SHA>, которая выдает именно то, что вы хотите. Смотрите git-name-rev (1) .

user3188445
источник
6

git describe --contains "$committish"показывает ссылку на коммит, построенный на теге, плюс ~$nсчетчик предков, поэтому следующая команда показывает самый последний тег, содержащий коммит:

git describe --contains "$committish" | sed 's/~.*//'

Если нет тега, содержащего этот коммит, git describeпроизойдет сбой. Если вы хотите вместо этого получить (сокращенно) коммит, добавьте --alwaysопцию.

Жиль "ТАК - перестань быть злым"
источник