У своєму сховищі я створив теги, використовуючи наступні команди.
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
" (назви тегів розглядаються як версії).Prepend "-" для зміни порядку сортування.
Тут перелічено обидва:
Примітка: стаття, готова до git, про теги відхиляє легкий тег.
Без аргументів, git tag створює "легкий" тег, який в основному є гілкою, яка ніколи не рухається.
Легкі теги все ще корисні, хоча, можливо, для позначення відомої хорошої (або поганої) версії або купки комітетів, які вам можуть знадобитися використовувати в майбутньому.
Тим не менш, ви, мабуть, не хочете натискати такі види тегів .Зазвичай вам потрібно принаймні пропустити параметр -a, щоб створити непідписаний тег, або підписати тег вашим ключем GPG через параметри -s або -u.
При цьому Чарльз Бейлі зазначає, що " git tag -m "..."
" насправді має на увазі правильний (непідписаний анотований) тег (варіант " -a
"), а не легкий. Отже, ви добре з початковою командою.
Це відрізняється від:
git show-ref --tags -d
У якому перераховані теги з їхніми комісіями (див. " Список тегів Git, відобразити хеші х1 ").
Зверніть увагу на те -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
відображається лише перший рядок. Для отримання додаткової інформації обов'язково перевірте також цю статтю, пов’язану з тегом .