Видя, какая версия идет с тегом в Git

Новичок Git вопрос:

В Mercurial мир, hg tags дает мне список тегов и соответствующих ревизий, тогда как git tag только списки имена тегов. Как узнать, что соответствует совпадающему номеру/хеш числа?

Ответы

Ответ 1

Для получения полной информации, связанной с этим тегом, используйте команду

git show v1.5

Или вы можете увидеть легкую информацию, пропуская детали, командой

git show v1.5 -lw

Ответ 2

Если тег, о котором идет речь, называется так называемым "тяжеловесным тегом" или аннотированным тегом, используя объект тега, например. PGP подписанная версия (насколько я знаю, Mercurial не имеет эквивалента), то

$ git show v1.5.0

будет отображаться как информация тега (tagger, дата тегов, сообщение тега, обычно содержащая блок подписи PGP), так и информация о помеченной фиксации. Если вы предпочитаете, вы можете использовать эквивалент низкого уровня:

$ git cat-file tag v1.5.0

(это не сработает, если v1.5.0 не является объектом тега).

Если тег, о котором идет речь, называется так называемым "легким тегом", это просто ссылка в пространстве имен refs/tags/*. Вы можете использовать "git show lightweight tag", чтобы показать фиксацию, указанную данным тегом.

Вы можете использовать имя тега в каждом месте, которое ожидает commit-ish или tree-ish.


Если вы хотите больше, чем "тег git" / "git tag -l", вы можете использовать одну из следующих команд сантехники (низкоуровневых) git show-refs:

$ git show-ref --tags
$ git show-ref --dereference --tags

или git for-each-ref, который предлагает извлечь больше информацию с опцией --format=<format> и сортировку с опцией --sort=<key>:

$ git for-each-ref refs/tags/

Вы также можете (ab) использовать git ls-remote для этого получается результат, аналогичный "git show-ref --dereference --tags":

$ git ls-remote --tags .