Какую Git-стратегию (ветвления) вы использовали на предыдущем проекте?

«Какую Git-стратегию (ветвления) вы использовали на предыдущем проекте?» — вопрос из категории CI/CD и DevOps, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Мы применяли адаптированную версию Git Flow с долгоживущими ветками для разных этапов разработки.

Основные ветки:

  1. main / master — стабильная ветка, соответствующая продакшену. Код только через мерж-реквесты.
  2. develop — ветка для интеграции новых функций. Основная ветка для разработки.
  3. *`feature/** — короткоживущие ветки для разработки новой функциональности. Ответвляются отdevelop`.
  4. *`release/** — ветки для подготовки релиза (финальное тестирование, исправление багов). Ответвляются отdevelop`.
  5. *`hotfix/** — ветки для срочных исправлений в продакшене. Ответвляются отmain`.

Типичный workflow для новой функции:

# Создание ветки для задачи
git checkout develop
git pull origin develop
git checkout -b feature/JIRA-123-new-login-button

# После завершения разработки и тестов
git push origin feature/JIRA-123-new-login-button
# Далее создается Pull/Merge Request из feature/* в develop

Для хотфикса:

git checkout main
git pull origin main
git checkout -b hotfix/critical-payment-fix
# Исправление бага, тесты
git push origin hotfix/critical-payment-fix
# MR в main, затем обязательный мерж в develop

Эта стратегия обеспечивала стабильность main и контролируемый поток изменений.