Стратегия ветвления нужна не Git сам по себе, а release-процессу: она задаёт, где живёт готовый к выпуску код, как коротко держать integration gap и какие проверки блокируют merge.
Feature Branch Workflow
Каждая задача делается в отдельной ветке от main или develop, затем проходит Pull Request / Merge Request и CI. Ветка должна быть короткоживущей; если она живёт неделями, команда получает delayed integration и больше конфликтов.
Подходит для команд, где нужен review перед merge, но нет сложного release train.
Git Flow
Модель Vincent Driessen с долгоживущими main и develop, плюс feature/*, release/*, hotfix/*. Сам автор позже уточнял, что Git Flow не является универсальной рекомендацией для continuous delivery/web-app сценариев.
Структура:
main
develop
├── feature/*
├── release/*
└── hotfix/*
Рабочий процесс:
- Разработка идёт в
develop - Новые функции --- в
feature/имя - Перед релизом --- ветка
release/x.x.x - После релиза --- merge в
mainиdevelop - Срочные багфиксы --- из
mainвhotfix/, затем обратно в обе ветки
Плюсы: явная подготовка релиза, отдельный hotfix-путь, удобно для версионируемых продуктов с релизными окнами.
Минусы: много merge-точек, долгоживущий develop, задержка интеграции. Для частых production deploys часто проще trunk-based.
Trunk-Based Development
Все изменения быстро попадают в main/trunk; feature-ветки либо не используются, либо живут часы/1-2 дня. Незавершённое поведение прячется за feature flags или branch by abstraction.
Плюсы: настоящая Continuous Integration, меньше merge debt, проще continuous delivery.
Минусы: нужен быстрый и надёжный CI, культура маленьких изменений, feature flags и оперативный rollback.
Выбор стратегии
- Стартап, быстрый цикл релизов - Trunk-Based
- Средний проект с обязательным review - Feature Branch Workflow
- Версионируемый продукт с release train - Git Flow
Best Practices
- Делайте маленькие feature-ветки, живущие не более 1--2 дней
- Автоматизируйте merge и проверки через CI/CD
- Не используйте
git push --forceв общих ветках - Включайте code review и quality gates
- Документируйте процесс ветвления в
CONTRIBUTING.md