Git Flow
Git Flow — это модель ветвления и управления релизами в Git, предложенная Винсентом Дриссеном. Она описывает стандартный рабочий процесс для командной разработки с чётким разделением веток по назначению.
Основные ветки в Git Flow
main (или master)
Хранит только стабильный, готовый к продакшену код.
Каждый коммит в
main
соответствует релизу.
develop
Основная ветка для разработки.
Все новые функции сливаются сюда перед релизом.
feature/ (функциональные ветки)*
Создаются от
develop
для разработки отдельной функции.После завершения сливаются обратно в
develop
.
release/ (релизные ветки)*
Создаются от
develop
, когда накоплено достаточно изменений для нового релиза.Используются для тестирования, исправления багов и подготовки к продакшену.
После готовности сливаются в
main
иdevelop
.
hotfix/ (экстренные исправления)*
Создаются от
main
для исправления критических багов на продакшене.После исправления сливаются в
main
иdevelop
.
Типичный процесс работы
Разработка новой функции:
git checkout develop
git checkout -b feature/login
Завершение функции:
git checkout develop
git merge feature/login
git branch -d feature/login
Подготовка релиза:
git checkout develop
git checkout -b release/1.0
# исправления багов
git checkout main
git merge release/1.0
git tag 1.0
git checkout develop
git merge release/1.0
git branch -d release/1.0
Экстренный фикс на проде:
git checkout main
git checkout -b hotfix/1.0.1
# исправления
git checkout main
git merge hotfix/1.0.1
git tag 1.0.1
git checkout develop
git merge hotfix/1.0.1
git branch -d hotfix/1.0.1
Плюсы Git Flow
Чёткая структура веток.
Легко управлять релизами и багфиксами.
Подходит для больших команд и долгих проектов.
Минус:
Может быть избыточен для маленьких проектов или быстрого прототипирования.
Last updated
Was this helpful?