В проекте используется Trunk-Based Development: одна долгоживущая основная ветка (main) и короткоживущие feature-ветки.
Основная ветка: main
- Всегда в состоянии «готово к деплою».
- Защищена: прямой push запрещен; изменения только через Merge Request.
- CI должен проходить для всех коммитов в main.
Feature-ветки
- Именование:
<type>/<TICKET>__<short_description>, напримерfeat/IDENTITY-42__add_user_creation. - Создаются от актуального
main. - Жизненный цикл: 1–3 дня; по возможности небольшие инкременты.
- После ревью и прохождения CI — merge в main (предпочтительно Squash and merge).
Release и теги
- Релизы помечаются тегами (например,
v1.2.0). - Сборка артефактов и образов привязана к тегам или к main (в зависимости от процесса CI/CD).
Hotfix
- Срочные исправления для production: ветка от main (или от релизного тега), минимальные изменения, быстрый MR и деплой.
- После merge изменения при необходимости переносятся обратно в main (если ветка была от тега).
Синхронизация с main
- Перед завершением работы над фичей регулярно подтягивать main (rebase или merge в зависимости от принятой практики).
- В MR конфликты разрешает автор ветки.
Связанные страницы
- Git Workflow — детали workflow и коммитов
- Release Process — процесс релизов