Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Як теги використовуються для релізів?». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)**Теги** використовуються для релізів як фіксована точка в історії Git, яка однозначно визначає версію продукту. **Ключове:** на потрібний коміт ставиться незмінний тег, за яким запускається CI/CD і фіксується конкретний стан коду.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)ЗображенняТеги використовуються для релізів як **фіксована точка в історії Git**, яка **однозначно визначає версію продукту** і слугує **тригером для релізу і CI/CD**. Простіше кажучи: *реліз = конкретний коміт + тег версії.* --- ## Основна ідея - код вважається готовим - на потрібний коміт ставиться **тег версії** - **усе, що стосується релізу, прив'язується до цього тегу** Тег стає «якорем» релізу. --- ## Типовий процес релізу з тегами 1. Код в основній гілці готовий (`main`, `release/*`) 2. Створюється **annotated tag**: ```bash git tag -a v1.3.0 -m "Release 1.3.0" ``` 3. Тег пушиться у віддалений репозиторій: ```bash git push origin v1.3.0 ``` 4. CI/CD реагує на тег: - збирає проект - запускає тести - деплоїть у потрібне середовище 5. На GitHub / GitLab створюється **реліз**: - опис змін - прикріплені артефакти --- ## Чому для релізів використовують саме теги ### Фіксована версія - тег не рухається - версія `v1.3.0` завжди = той самий код --- ### Відтворюваність - можна перезібрати реліз через роки - легко знайти код конкретної версії --- ### Інтеграція з CI/CD - пайплайни часто налаштовані так: > «деплой у прод - тільки за тегом» --- ### Зрозуміла історія релізів - список тегів = історія версій - зручно орієнтуватися в розвитку продукту --- ## Lightweight чи annotated? Для релізів майже завжди: > **annotated tag** Тому що: - є опис - є автор і дата - можна підписати тег - зручно для аудиту --- ## Часте питання на співбесіді **Чому не робити реліз із гілки?** Тому що: - гілка змінюється - сьогодні `main` - одне, завтра - інше - неможливо гарантувати точну версію Тег вирішує цю проблему. --- ## Коротка відповідь для співбесіди > **Теги використовуються для релізів як незмінні мітки версії: на потрібний коміт ставиться тег, за яким запускається CI/CD, створюється реліз і фіксується конкретний стан коду.**Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.