теги списка содержатся ответвлением

Как может я перечислять теги, содержавшие данным ответвлением, противоположностью:

git tag --contains <commit>

Который "только теги списка, которые содержат указанную фиксацию".

Если что-то вроде этого не существует, как я тестирую, содержится ли фиксация другой фиксацией так, чтобы я мог написать сценарий этого?

Я мог сделать это:

commit=$(git rev-parse $branch)
for tag in $(git tag)
do
    git log --pretty=%H $tag | grep -q -E "^$commit$"
done

Но я надеюсь, что существует лучший путь, поскольку это могло бы занять много времени в репозитории со многими тегами и фиксациями.

57
задан tarsius 4 March 2010 в 18:20
поделиться

2 ответа

Это может быть похоже на то, что вы хотите:

git log --simplify-by-decoration --decorate --pretty=oneline "$committish" | fgrep 'tag: '

Но более распространенная ситуация - просто найти самый последний тег:

git describe --tags --abbrev=0 "$committish"
  • - теги будут искать по легким тегам, не используйте его, если вы хотите рассматривать только аннотированные теги.
  • Не используйте - abbrev = 0 , если вы хотите также видеть обычный суффикс «количество« коммитов сверху »и сокращенный хэш» (например, v1.7.0-17-g7e5eb8).
41
ответ дан 24 November 2019 в 19:27
поделиться

git description (или его вариант) может быть тем, что вы ищете.

0
ответ дан 24 November 2019 в 19:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: