Trunk-based или GitFlow
Вопрос
Как в вашей команде устроена работа с ветками? Сравни trunk-based development и GitFlow.
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
trunk-based: короткие ветки, частые вливания в main
незаконченное прячут за feature flags
GitFlow: develop, release, hotfix, долгие ветки
GitFlow уместен при редких версионных релизах
долгие ветки дают тяжёлые конфликты
выбор связан с CI/CD и частотой деплоя
Что могут спросить следом
- Как выкатить незаконченную фичу в trunk-based?
- Что делать с hotfix в trunk-based?
- Как быть, если ветка живёт уже две недели?
Разбор
В trunk-based все вливают маленькие изменения в main часто, хотя бы раз в день, через короткоживущие ветки и PR. Незаконченное прячут за флагами функций, а main всегда готов к релизу. Это хорошо сочетается с CI/CD и частыми деплоями, но требует хороших автотестов и дисциплины.
GitFlow держит долгоживущие develop и main, плюс ветки release/* и hotfix/*. Он подходит для продуктов с редкими версионными релизами (коробка, мобильные приложения), но ветки живут долго, и слияния становятся болезненными. В веб-команде я бы выбрал trunk-based с короткими ветками и squash merge.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.