В моем хранилище я создал теги, используя следующие команды.
git tag v1.0.0 -m 'finally a stable release'
git tag v2.0.0 -m 'oops, there was still a major bug!'
Как вы перечисляете все теги в хранилище?
git tag
должно быть достаточно. См. Git tag
man page
У вас также есть:
git tag -l <pattern>
Список тегов с именами, которые соответствуют заданному шаблону (или все, если шаблон не указан). Печатая «git tag» без аргументов, также перечисляются все теги.
Совсем недавно ("Как сортировать теги git? ", для Git 2.0+)
git tag --sort=<type>
Сортировать в определенном порядке.
Поддерживаемый тип:
- "
refname
" (лексикографический порядок),- «
version: refname
» или «v: refname
» (имена тегов рассматриваются как версии).
Предположить «-», чтобы изменить порядок сортировки.
Это перечисляет оба:
Примечание: готовая статья по тегам не одобряет легкую метку.
Без аргументов git tag создает «легкий» тег, который в основном является веткой, которая никогда не перемещается. Легкие теги все еще полезны, возможно, для маркировки известной хорошей (или плохой) версии или группы коммитов, которые вам, возможно, придется использовать в будущем. Тем не менее, вы, вероятно, не хотите нажимать такие теги .
Обычно вы хотите, по крайней мере, передать опцию -a, чтобы создать тег без подписи, или подписать тег с помощью ключа GPG через -s или -u < key-id > опции.
При этом Чарльз Бейли указывает на то, что «git tag -m»...«» фактически подразумевает правильный (неподписанный аннотированный) тег (опция «-a
»), а не легкий. Так что вы хороши с вашей первоначальной командой.
Это отличается от:
git show-ref --tags -d
Который перечисляет теги с их коммитами (см. «Список тегов Git, отображение коммитов хэшей sha1»).
Обратите внимание на -d
, чтобы разыменовать аннотированный объект тега (который имеет свой собственный коммит SHA1) и отобразить фактический помеченный коммит.
Аналогично, git show --name-only < aTag >
переводит тег и связанный коммит.
Чтобы перечислить теги, я предпочитаю:
git tag -n
Флаг -n
отображает первую строку сообщения аннотации вместе с тегом или первую строку сообщения коммита, если тег не аннотирован.
Вы также можете сделать git tag -n5
, чтобы показать первые 5 строк аннотации.
Также git show-ref
довольно полезен, так что вы можете напрямую связать теги с корреспондентами коммиты :
$ git tag
osgeolive-6.5
v8.0
...
$ git show-ref --tags
e7e66977c1f34be5627a268adb4b9b3d59700e40 refs/tags/osgeolive-6.5
8f27e65bddd7d4b8515ce620fb485fdd78fcdf89 refs/tags/v8.0
...
И вот как вы найдете удаленные теги:
git ls-remote - tags origin
Чтобы увидеть подробности о последнем доступном теге, который я иногда использую:
git show `git describe` --pretty=fuller
Перечисление доступных тегов в Git просто. Просто введите git tag
(с необязательным -l
или --list
).
$ git tag
v5.5
v6.5
Вы также можете искать теги, которые соответствуют определенному шаблону.
$ git tag -l "v1.8.5*"
v1.8.5
v1.8.5-rc0
v1.8.5-rc1
v1.8.5-rc2
Получение последнего тега в git-репозитории
Команда находит самый последний тег, который можно получить из коммита. Если тег указывает на коммит, то отображается только тег. В противном случае он суффиксирует имя тега с количеством дополнительных коммитов в верхней части помеченного объекта и сокращенным именем объекта самого последнего коммита.
git describe
Если для параметра --abbrev
установлено значение 0
, можно использовать команду для поиска ближайшего tagname
без суффикса:
git describe --abbrev=0
Другие примеры:
git describe --abbrev=0 --tags # gets tag from current branch
git describe --tags `git rev-list --tags --max-count=1` // gets tags across all branches, not just the current branch
Как обрезать локальные теги git, которых нет на пульте
Проще говоря, если вы пытаетесь сделать что-то вроде git fetch -p -t
, это не будет работать, начиная с git версии 1.9.4
.
Тем не менее, есть простой обходной путь, который все еще работает в последних версиях:
git tag -l | xargs git tag -d // remove all local tags
git fetch -t // fetch remote tags
Если вы хотите проверить имя тега локально, вам нужно перейти к пути, по которому вы создали тег (локальный путь). Означает, куда вы положили свои объекты. Затем введите команду:
git show --name-only <tagname>
Он покажет все объекты под этим именем тега. Я работаю в Teradata и объектно означает просмотр, таблицу и т. Д
Вы можете перечислить все существующие теги git tag
или вы можете отфильтровать список с помощью git tag -l 'v1.1.* '
, где *
действует как подстановочный знак. Он вернет список тегов, помеченных v1.1
.
Вы заметите, что когда вы вызываете git tag
, вы не видите содержимое ваших аннотаций. Чтобы просмотреть их, вы должны добавить -n
в команду: git tag -n2
.
$ git tag -l -n2 v1.0 Выпуск версии 1.0 v1.1 Версия выпуска 1.1
Команда перечисляет все существующие теги максимум с 3 строками их сообщения тега. По умолчанию -n
показывает только первую строку. Для получения дополнительной информации обязательно проверьте этот тег связан статьи.