В моем хранилище я создал теги, используя следующие команды.
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 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
справочную страницу
У вас также есть:
git tag -l <pattern>
Перечислите теги с именами, которые соответствуют заданному шаблону (или всем, если шаблон не указан).
Ввод "git tag" без аргументов, также перечисляет все теги.
Совсем недавно (« Как отсортировать теги git? », Для Git 2.0+)
git tag --sort=<type>
Сортировка в определенном порядке.
Поддерживаемый тип:
- "
refname
" (лексикографический порядок),- "
version:refname
" или "v:refname
" (имена тегов рассматриваются как версии).Предварительно добавьте «-», чтобы изменить порядок сортировки.
Это перечисляет оба:
Примечание: git ready статья о тегировании не одобряет легкий тег.
Без аргументов тег git создает «легкий» тег, который в основном является ветвью, которая никогда не перемещается.
Однако облегченные теги по-прежнему полезны, возможно, для маркировки известной хорошей (или плохой) версии или набора коммитов, которые вам, возможно, придется использовать в будущем.
Тем не менее, вы, вероятно, не хотите нажимать такие теги .Обычно вы хотите, по крайней мере, передать параметр -a, чтобы создать неподписанный тег, или подписать тег с помощью ключа GPG с помощью параметров -s или -u.
При этом, Чарльз Бэйли указывает, что « git tag -m "..."
» на самом деле подразумевает правильный (без знака аннотированный) тег (опция -a
'), а не легкий. Таким образом, вы хорошо с вашей первоначальной командой.
Это отличается от:
git show-ref --tags -d
В котором перечислены теги с их коммитами (см. « Список тегов Git, отображение хэшей sha1 »).
Обратите внимание-d
, чтобы разыменовать аннотированный теговый объект (который имеет свой собственный коммит SHA1) и отобразить фактический тегированный коммит.
Точно так же git show --name-only <aTag>
перечислил бы тег и связанный с ним коммит.
Также 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
...
hg tags
мне нравится, что git show-ref
дает мне тег И ревизию.
А вот как вы найдете удаленные теги:
git ls-remote --tags origin
Попробуй сделать git tag
это должно быть достаточно, если не попытаться сделать git fetch
то git tag
.
git tag
команды запуска должно быть достаточно, если вы просто хотите увидеть список доступных тегов. Если вы не видите некоторые теги, которые, по вашему мнению, могут существовать на удаленном компьютере, ваши локальные теги могут не синхронизироваться с удаленным. В этом случае сначала извлеките последние ссылки / заголовки с пульта git fetch
, а затем фактические git tag
. Я обычно запускаю однострочную строчку так: $ git fetch -p && git tag
просто чтобы быть уверенным, что я смотрю на последнее и лучшее.
Перечислить доступные теги в 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
v0.1.0-rc1 fatal: No tags can describe '5db7534...4a94'. Try --always, or create some tags.
Чтобы увидеть подробности о последних доступных тегах, которые я иногда использую:
git show `git describe` --pretty=fuller
Если вы хотите проверить имя тега локально, вам нужно перейти по пути, по которому вы создали тег (локальный путь). Означает, где вы положили свои объекты. Затем введите команду:
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
отображается только первая строка. Для получения дополнительной информации не забудьте проверить эту статью, связанную с тегом, а также.