Як перелічити всі теги Git?


675

У своєму сховищі я створив теги, використовуючи наступні команди.

git tag v1.0.0 -m 'finally a stable release'
git tag v2.0.0 -m 'oops, there was still a major bug!'

Як ви перераховуєте всі теги у сховищі?

Відповіді:


954
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. Вони контрольно суммовані; містити ім’я тегера, електронну пошту та дату; мати тег-повідомлення; і може бути підписаний і підтверджений за допомогою GNU Privacy Guard (GPG).
  • легкі теги : простий вказівник на існуючий коміт

Примітка: стаття, готова до 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>буде перераховано тег та пов’язані коміти.


6
Напевно, варто додати, що -m або -F має на увазі -a (якщо не -a, -s або -u надаються явно. Ви не можете мати повідомлення про тег без створення належного об’єкта тегів.
CB Bailey

1
Зауважте до себе: за допомогою цього результату я передаю 800000 (31 серпня 2018 р.) На переповнення стека, один рік та один місяць після досягнення 700000 (6 серпня 2017 р . ) .
VonC

190

Для переліку тегів, які я віддаю перевагу:

git tag -n

The -nПрапор відображає початку повідомлення анотацій разом з тегом, або перше повідомлення фіксації рядки , Якщо порожній прямуючи.

Ви також git tag -n5можете показати перші 5 рядків примітки.


48

Також 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 tagsмені подобається, що це git show-refдає мені тег І перегляд.
Джастін


15

Постарайтеся зробити git tagйого має бути достатньо, якщо не спробувати зробити git fetchтоді git tag.


4
Я думаю, що він має на увазі таке: Команди запуску git tagповинно бути достатньо, якщо ви просто хочете переглянути список доступних тегів. Якщо ви не можете бачити деякі теги, які, на вашу думку, можуть існувати на віддаленому рівні, то ваші локальні теги можуть не синхронізуватися з віддаленими. У цьому випадку спочатку витягніть останні оновлення / голови з віддалених git fetch, а потім фактичні git tag. Зазвичай я запускаю однолінійний лайнер таким чином: $ git fetch -p && git tagпросто щоб бути впевненим, що я дивлюся якнайкраще та найкраще.
demisx

11

Перелік доступних тегів у 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

Команда, пов’язана з rev-list, подала мені список, але закінчилася помилкою:v0.1.0-rc1 fatal: No tags can describe '5db7534...4a94'. Try --always, or create some tags.
not2qubit

10

Щоб переглянути деталі останнього доступного тегу, який я іноді використовую:

git show `git describe` --pretty=fuller

6

Якщо ви хочете перевірити тег назви локально, вам потрібно піти на шлях, де ви створили тег (локальний шлях). Означає, куди ви поставили свої предмети. Потім введіть команду:

git show --name-only <tagname>

Він покаже всі об'єкти під цим ім'ям тегу. Я працюю в Teradata і об'єкт означає перегляд, таблицю тощо


4

Ви можете перелічити всі існуючі теги 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відображається лише перший рядок. Для отримання додаткової інформації обов'язково перевірте також цю статтю, пов’язану з тегом .


0

Щоб графічний інтерфейс зробив це, я щойно виявив, що 'gitk' підтримує названі види. Перегляди мають кілька варіантів вибору комітетів. Зручним є поле для вибору "Усі теги". Це, здається, працює для мене, щоб побачити теги.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.