В чем разница между Trunk-based и Feature Branch?
Модели ветвления и командная работа
Feature Branch — каждая задача живёт в своей ветке до готовности. Trunk-based — изменения вливаются в основную ветку маленькими порциями несколько раз в день.
Feature Branch
- ветка под задачу, вливается через pull request после ревью;
- ветки могут жить днями и неделями;
- плюс:
mainзащищена от незаконченного кода; - минус: долгоживущие ветки расходятся с
main— больше конфликтов и поздняя интеграция.
Trunk-based
- очень короткие ветки (часы) или коммиты прямо в
main; - незаконченный функционал прячут за фича-флагами;
- плюсы: ранняя интеграция, меньше конфликтов, быстрые релизы;
- требует хорошего CI, автотестов и культуры мелких изменений.
if (flags.isEnabled('new-checkout')) {
renderNewCheckout();
}Как выбирать
Крупным командам с частыми деплоями ближе trunk-based; командам с длинными релизными циклами или без сильного CI — feature branch.
Коротко для собеседования
Feature Branch — отдельная ветка на задачу до готовности, trunk-based — частые маленькие вливания в main с фича-флагами; второй ускоряет интеграцию, но требует хорошего CI.
Подробнее: trunkbaseddevelopment.com