Ответ
В DevOps теги Git используются для маркировки релизов, контрольных точек (например, образов контейнеров) и управления версиями. Работа с ними ведется через CLI.
1. Создание тега
-
Аннотированный тег (Annotated Tag): Рекомендуется для релизов. Содержит автора, дату, сообщение и может быть подписан GPG.
# Создать аннотированный тег для текущего коммита git tag -a v1.5.0 -m "Release version 1.5.0: Added feature X and fixed critical bug Y" # Создать тег для конкретного прошлого коммита git tag -a v1.4.2 -m "Hotfix for login issue" abc123def -
Легковесный тег (Lightweight Tag): Просто указатель на коммит. Подходит для временных меток.
git tag build-1234
2. Отправка тегов на удаленный сервер (например, GitHub, GitLab, Bitbucket)
Теги по умолчанию не отправляются при git push. Нужно делать это явно.
# Отправить один конкретный тег
git push origin v1.5.0
# Отправить все локальные теги, которых еще нет на удаленном сервере
git push origin --tags
# Внимание: `--tags` отправит и аннотированные, и легковесные теги.
3. Просмотр и управление тегами
# Список всех тегов
git tag
# Список тегов по шаблону (например, v1.x)
git tag -l "v1.*"
# Показать информацию о конкретном теге
git show v1.5.0
# Удалить локальный тег
git tag -d v0.9-beta
# Удалить тег с удаленного сервера
git push origin --delete v0.9-beta
# Или
git push origin :refs/tags/v0.9-beta
4. Использование в CI/CD пайплайнах Теги часто триггерят сборку релиза. Пример для GitLab CI:
release_job:
stage: deploy
rules:
- if: $CI_COMMIT_TAG # Запускается только если сделан push тега
script:
- echo "Building release $CI_COMMIT_TAG"
- docker build -t myapp:$CI_COMMIT_TAG .
Рекомендация: Следуйте Семантическому Версионированию (SemVer) (MAJOR.MINOR.PATCH, например, 2.1.13) для аннотированных тегов. Это стандарт де-факто для автоматизации.