Какая модель ветвления используется в команде
Что проверяют
Как вы работали с кодом в команде и понимаете ли модели ветвления по их последствиям для релизов, а не по названиям. Следом спрашивают, почему выбрали именно эту модель и как выглядел путь изменения от ветки до прода. Вопрос бывает и встречным: его стоит задать работодателю.
Как отвечать
Назовите модель своей команды и сразу опишите процесс, а не список веток. Опорные варианты:
- Git Flow:
main,develop, веткиfeature/*,release/*,hotfix/*. Подходит продуктам с редкими версионными релизами, например библиотеке или коробочной системе. Цена: долгоживущие ветки и тяжёлые слияния. Автор модели позже сам написал, что для веб-сервисов с непрерывной доставкой она избыточна; - GitHub Flow: одна
main, короткие ветки под задачу, pull request с ревью и CI, после слияния деплой; - Trunk-based development: изменения попадают в основную ветку хотя бы раз в день, незаконченное прячется за фича-флагами. Требует хороших тестов и быстрого CI;
- релизные ветки: от
mainотрезаютrelease/2.3, туда идут только фиксы через cherry-pick. Нужны, когда параллельно поддерживаются несколько версий.
Для Java-проекта свяжите модель с версиями артефактов: в Maven рабочая версия несёт суффикс -SNAPSHOT, релиз фиксирует версию без него тегом, а CI (GitLab CI, Jenkins или GitHub Actions) публикует артефакт в Nexus или Artifactory. Добавьте, как была защищена основная ветка: обязательный зелёный пайплайн, хотя бы один аппрув, squash или rebase при слиянии.
Говорите о своём реальном опыте, с цифрами: как часто выходили релизы, сколько жили ветки, как делали хотфикс. Если вопрос задаёте вы, ответ многое скажет о команде: Git Flow с месячными релизами и trunk-based с ежедневным деплоем это разные культуры.
Где спотыкаются
Отвечают «мы использовали Git» или перечисляют ветки Git Flow, не зная, как у них на самом деле шли релизы и хотфиксы.
Называют Git Flow единственно правильной моделью. Сильнее звучит объяснение, в каких условиях он оправдан и когда мешает.
Придумывают процесс, которого не было. Если в команде все пушили в одну ветку без ревью, скажите честно и объясните, что бы вы поменяли и почему.