Как перечислить все теги, указывающие на определенную фиксацию в git
Я видел команды git describe
и git-name-rev
но мне не удалось заставить их перечислить более одного тега.
пример: у меня есть sha1 48eb354, и я знаю, что теги A и B указывают на него. Поэтому я хочу команду git git {something} 48eb354
которые производят выход подобный "А, Б". Мне не интересно знать Ссылки относительно других тегов или ветвей, просто точные совпадения для тегов.
5 ответов:
git show-ref --tags -d | grep ^48eb354 | sed -e 's,.* refs/tags/,,' -e 's/\^{}//'
должен работать как для легких, так и для аннотированных тегов.
git tag --points-at HEAD
показывает все теги на голове, вы также можете заменить голову с любым идентификатором sha1.
Вы можете использовать:
git tag --contains <commit>
это показывает все теги при определенной фиксации. Его можно использовать вместо:
git tag --points-at HEAD
это доступно только с 1.7.10.
git for-each-ref --format='%(objectname) %(refname:short)' refs/tags/ | grep ^$commit_id | cut -d' ' -f2
жаль, что это не может быть сделано более легко. Еще один флаг на
git tag
чтобы включить идентификаторы фиксации, можно выразить этоgit for-each-ref
вызова, естественно.