Теги Git

Если вы достигли важного этапа и хотите всегда помнить снимок коммита, вы можете использоватьgit tagчтобы пометить его тегом.

Теги Git используются для отметки определённых точек коммитов в репозитории, обычно для версий релизов (таких как v1.0, v2.0).

Например, если мы хотим выпустить версию "1.0" для нашего примера проекта, мы можем использоватьgit tag -a v1.0Эта команда помечает последний коммит (HEAD) тегом "v1.0".

-aПараметры

"Создать аннотированный тег", не обязательно-aЭтот параметр также работает, но он не записывает, когда был создан тег, кем, и не позволяет добавить аннотацию к тегу. Мы рекомендуем всегда создавать аннотированные теги.

Формат синтаксиса тега:

git tag <tagname>

Например:

git tag v1.0

-aПараметр может добавить аннотацию:

$ git tag -a v1.0 

Когда вы запускаете команду git tag -a, Git откроет ваш редактор и позволит написать аннотацию к тегу, точно так же, как при написании аннотации к коммиту.

Теперь обратите внимание, что когда мы выполняемgit log --decorateВ этот момент мы можем увидеть наш тег:

*   d5e9fc2 (HEAD -> master) Merge branch 'change_site'
|\  
| * 7774248 (change_site) changed the example.php
* | c68142b 修改代码
|/  
* c1501a2 removed test.txt、add example.php
* 3e92c19 add test.txt
* 3b58100 第一次版本提交

Если мы забыли поставить тег на коммит и уже выпустили его, мы можем добавить тег к нему позже.

Например, предположим, мы выпустили коммит 85fc7e7 (последняя строка в примере выше), но забыли поставить на него тег в тот момент. Теперь мы также можем:

$ git tag -a v0.9 85fc7e7
$ git log --oneline --decorate --graph
*   d5e9fc2 (HEAD -> master) Merge branch 'change_site'
|\  
| * 7774248 (change_site) changed the example.php
* | c68142b 修改代码
|/  
* c1501a2 removed test.txt、add example.php
* 3e92c19 add test.txt
* 3b58100 (tag: v0.9) 第一次版本提交

Если мы хотим просмотреть все теги, мы можем использовать следующую команду:

$ git tag
v0.9
v1.0

Отправить теги в удалённый репозиторий

По умолчанию git push не отправляет теги; нужно явно отправлять теги.

git push origin <tagname>

Отправить все теги:

git push origin --tags

Удалить легковесный тег

Удалить локально:

git tag -d <tagname>

Удалить удалённо:

git push origin --delete <tagname>

Аннотированные теги

Аннотированные теги хранят имя создателя, email, дату и могут содержать информацию о теге. Аннотированные теги более формальны и подходят для сценариев, требующих дополнительных метаданных.

Синтаксис создания аннотированных тегов:

git tag -a <tagname> -m "message"
Например:
git tag -a <tagname> -m "example.com标签"

Команда создания тега с PGP-подписью:

git tag -s <tagname> -m "example.com标签"

Просмотр информации о теге:

git show <tagname>

Пример

Ниже приведён комплексный пример, демонстрирующий создание, просмотр, отправку и удаление тегов.

Создание легковесных и аннотированных тегов:

git tag v1.0
git tag -a v1.1 -m "example.com标签"

Просмотр тегов и информации о тегах:

git tag
git show v1.1

Отправка тегов в удалённый репозиторий:

git push origin v1.0
git push origin v1.1
git push origin --tags  # 推送所有标签

Удаление тега

Удалить локально:

git tag -d v1.0

Удалить удалённо:

git push origin --delete v1.0
Другие расширения