Trunk-based development (разработка на основной ветке)
Коротко: При trunk-based development все разработчики работают в одной общей основной ветке и вливают только очень недолговечные ветки, часто в течение дня.
Подробнее: Противоположность — долгие ветки функций, которые днями расходятся и заканчиваются болезненными слияниями.
Подробности
- Правила: Небольшие изменения, частая интеграция, основная ветка всегда работает.
- Флаги функций (feature flags): Незавершённые функции поставляются за переключателем, выключенными. Так разделяют развёртывание и включение.
- Предпосылки: Быстрые автоматические тесты, непрерывная интеграция и код-ревью, которое не длится днями.
- Преимущества: Меньше конфликтов слияния, быстрее обратная связь, проще релизы.
- Недостатки: Требует дисциплины и хорошего покрытия тестами. Крупные перестройки нужно разбивать на малые шаги («branch by abstraction»).
- Отличие: GitFlow с ветками
develop, релизов и хотфиксов трудоёмче и больше подходит ПО с фиксированными версиями.
См. также: git rebase