Тур по Git
Продвинутый Git / Урок 5.2

git tag — Отметка вех

Теги — это постоянные закладки в вашей истории Git. Они помечают определённые коммиты как важные — обычно для релизов, версий или вех.

Два типа тегов

Легковесные теги

Легковесный тег — это просто имя, указывающее на коммит. Представьте его как ветку, которая никогда не перемещается.

git tag v1.0

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

Аннотированный тег — это полноценный объект Git. Он хранит имя автора, email, дату и сообщение. Используйте их для релизов.

git tag -a v1.0 -m "First stable release"

Просмотр и изучение тегов

git tag              # список всех тегов
git tag -l "v1.*"    # список тегов, соответствующих шаблону
git show v1.0        # показать детали тега и отмеченный коммит

Пометка прошлых коммитов

Вы можете пометить тегом любой коммит, не только текущий:

git tag -a v0.9 -m "Beta release" abc1234

Отправка тегов

Теги не отправляются по умолчанию. Вы должны отправить их явно:

git push origin v1.0       # отправить один тег
git push origin --tags      # отправить все теги

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

git tag -d v1.0                    # удалить локально
git push origin --delete v1.0      # удалить с удалённого репозитория

Попробуйте!

Потренируйтесь создавать и управлять тегами:

  1. Инициализируйте репозиторий и сделайте несколько коммитов: git init && echo "v1" > app.txt && git add app.txt && git commit -m "First feature"
  2. Добавьте ещё работы: echo "v2" >> app.txt && git add app.txt && git commit -m "Second feature"
  3. Создайте легковесный тег на текущем коммите: git tag v0.2
  4. Создайте аннотированный тег: git tag -a v0.2.1 -m "Release candidate"
  5. Пометьте первый коммит: git tag -a v0.1 -m "Initial release" HEAD~1
  6. Выведите список всех тегов: git tag
  7. Изучите аннотированный тег: git show v0.2.1

Когда использовать теги

  • Релизы — v1.0.0, v2.1.3 (используйте аннотированные теги)
  • Маркеры деплоя — deploy-2024-01-15 (легковесные подойдут)
  • Вехи — beta, rc1, stable

Теги позволяют легко переключиться на любой релиз: git checkout v1.0 перенесёт вас точно в эту точку истории.

🎯

Цель

Создайте облегчённый и аннотированный теги

Terminal
$

No commits yet. Run `git init` and create your first commit.