2009-06-30 4 views

ответ

499
git tag 

должно быть достаточно. См git tag man page


Вы также:

git tag -l <pattern> 

теги с именами, которые соответствуют заданному шаблону (или все, если никакой закономерности не дается).
Ввод «git tag» без аргументов, также перечисляет все теги.


Совсем недавно ("How to sort git tags?", для Git 2.0+)

git tag --sort=<type> 

Сортировка в определенном порядке.

Поддерживаемые тип:

  • "refname" (лексикографический порядок),
  • "version:refname" или "v:refname" (имена тегов, рассматриваются в качестве версии).

Подготовить «-» для отмены порядка сортировки.


Это перечислены как:

  • annotated tags: полные объекты, хранящиеся в базе данных Git. Они проверены; содержат имя тегатора, адрес электронной почты и дату; иметь сообщение с тегами; и могут быть подписаны и проверены с помощью GNU Privacy Guard (GPG).
  • lightweight tags: простой указатель на существующую совершить

Примечание: в git ready article on tagging неодобрительно легкого тега.

Без аргументов git tag создает «легкий» тег, который в основном является ветвью, которая никогда не перемещается.
Легкие теги по-прежнему полезны, хотя, возможно, для обозначения известной хорошей (или плохой) версии или кучу коммитов, которые могут понадобиться вам в будущем.
Тем не менее, вы, вероятно, не хотите нажимать эти виды тегов.

Как правило, вы хотите как минимум передать параметр -a для создания тега без знака или подписать тег с помощью ключа GPG с помощью опций -s или -u.


Это, как говорится, Charles Bailey указывает на то, что «git tag -m "..."» на самом деле означает правильное (без знака) аннотированный тег (опция «-a»), а не легкий один. Таким образом, вы хорошо справляетесь со своей первоначальной командой.


Это отличается от:

git show-ref --tags -d 

какие списки тегов с их фиксаций (см "Git Tag list, display commit sha1 hashes").
Обратите внимание на -d, чтобы разыменовать объект аннотированных тегов (которые имеют собственный фиксатор SHA1) и отобразить фактическое помеченное коммитом.

Аналогичным образом, git show --name-only <aTag> будет перечислять тег и связанную с ним фиксацию.

+5

Это, вероятно, стоит добавить, что -m или -F -a означает (если non -a, -s или -u поставляются явно. Вы не можете иметь сообщение тега, не создавая «правильный» объект тега. –

+1

@Charles: хорошая точка. Я обновил свой ответ соответственно – VonC

+0

Возможно, '--name «только» можно также упомянуть здесь, http://stackoverflow.com/a/43870965/54964 –

136

К списку тегов Я предпочитаю:

git tag -n 

Флаг -n отображает первую строку сообщения аннотаций вместе с тегом, или первое сообщение фиксации строки, если тег не примеч.

Вы также можете сделать git tag -n5, чтобы показать первые 5 строк аннотации.

5

Попытка сделать git tag должно быть достаточно, если не пытаться сделать git fetch, а затем git tag.

+0

Что ты имеешь в виду? – toto

+3

Я думаю, что он имеет в виду: Запуск команды 'git tag' должен быть достаточно, если вы просто хотите увидеть список доступных тегов. Если вы не можете увидеть теги, которые, по вашему мнению, могут существовать на удаленном компьютере, ваши локальные теги могут не синхронизироваться с удаленным. В этом случае извлеките последние refs/heads из удаленной первой «git fetch», а затем фактический «git tag». Обычно я запускаю один лайнер следующим образом: '$ git fetch -p && git tag'just, чтобы быть уверенным, что я смотрю последние и самые большие. – demisx

32

Также 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 
... 
+1

Используется для «hg-тегов Mercurial» Мне нравится, что 'git show-ref' дает мне тег AND revision. – Justin

+1

Это было чрезвычайно полезно для того, чтобы пытаться извлекать информацию о тегах программно. –

4

Чтобы просмотреть информацию о последних доступных тегов иногда я использую:

git show `git describe` --pretty=fuller 
1

Если вы хотите локально указать имя тега, вам нужно перейти на путь, где у вас есть креа ted tag (локальный путь). Средство, в котором вы разместили свои объекты. Тогда команда типа:

git show --name-only <tagname> 

Он покажет все объекты под этим именем тега. Я работаю в Teradata и объект означает вид, таблица т.д.,

0

А вот как вы находите удаленные теги:

git ls-remote --tags origin

Смежные вопросы