При разработке проекта часто возникает необходимость зафиксировать стабильную версию и затем перейти к созданию следующей. Git предоставляет для этого мощный инструмент — теги, которые привязываются к точным состояниям кода (коммитам).
В этой статье:
- Что такое тег в Git и для чего он нужен
- Как правильно завершить текущую версию
- Как начать работу над следующей
- К какому коду относится новый тег — к старому или новому?
🔍 Что такое тег в Git?
Git-тег — это метка, прикреплённая к конкретному коммиту.
Он фиксирует состояние репозитория в определённый момент, обычно для обозначения версии (релиза).
⚠️ Важно: тег относится только к уже существующему коммиту, а не к будущему коду.
🧭 Типичный сценарий работы с версиями
| Этап | Действие |
|---|---|
| Завершили работу над версией | Создали коммит |
| Зафиксировали её тегом | Метка v0.1.0 |
| Начали разработку новой версии | Новые коммиты без тега |
| Готов следующий релиз | Новый тег v0.2.0 |
🏁 Завершение версии: фиксация кода и создание тега
1️⃣ Заверши текущие изменения
git add .
git commit -m "Finalize version 0.1.0"
2️⃣ Создай тег для релиза
git tag -a v0.1.0 -m "Release 0.1.0"
git push origin v0.1.0
✅ Теперь тег v0.1.0 жёстко “прикреплён” к состоянию проекта — это зафиксированная версия.
🚀 Начало новой версии
После того как релиз отмечен тегом, можно продолжать разработку:
git commit -m "Start version 0.2.0 development"
Когда новая версия готова — создаём следующий тег:
git tag -a v0.2.0 -m "Release 0.2.0"
git push origin v0.2.0
❗ К какому коду относится тег?
| Тег | Относится к |
|---|---|
v0.1.0 | Стабильной версии, которую ты завершил |
v0.2.0 | Новому состоянию после изменений |
| Нет тега | Черновая/текущая разработка |
🧠 Тег никогда не предназначен для “будущей” версии. Он всегда фиксирует прошлую и завершённую.
📚 Дополнительные советы
- Используй семантическое версионирование:
MAJOR.MINOR.PATCH(например,1.4.2) - Добавляй описание в тег (
-m), чтобы помнить, что в этом релизе изменилось - Просмотри все теги:
git tag
- Откатись к версии через тег:
git checkout v0.1.0
🏆 Итог
| Вопрос | Ответ |
|---|---|
| Когда ставить тег? | Когда версия закончена |
| Что обозначает тег? | Конкретное состояние кода (релиз) |
| Что после тега? | Новая разработка и будущая версия |
Хочешь продолжение?
📦 Могу подготовить шаблон CHANGELOG, автоматизацию семантических версий или GitHub Actions для релизов.
Сказать? 👇