Git Flow

Git Flow — это модель ветвления и управления релизами в Git, предложенная Винсентом Дриссеном. Она описывает стандартный рабочий процесс для командной разработки с чётким разделением веток по назначению.


Основные ветки в Git Flow

  1. main (или master)

    • Хранит только стабильный, готовый к продакшену код.

    • Каждый коммит в main соответствует релизу.

  2. develop

    • Основная ветка для разработки.

    • Все новые функции сливаются сюда перед релизом.

  3. feature/ (функциональные ветки)*

    • Создаются от develop для разработки отдельной функции.

    • После завершения сливаются обратно в develop.

  4. release/ (релизные ветки)*

    • Создаются от develop, когда накоплено достаточно изменений для нового релиза.

    • Используются для тестирования, исправления багов и подготовки к продакшену.

    • После готовности сливаются в main и develop.

  5. hotfix/ (экстренные исправления)*

    • Создаются от main для исправления критических багов на продакшене.

    • После исправления сливаются в main и develop.


Типичный процесс работы

  1. Разработка новой функции:

git checkout develop
git checkout -b feature/login
  1. Завершение функции:

git checkout develop
git merge feature/login
git branch -d feature/login
  1. Подготовка релиза:

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
  1. Экстренный фикс на проде:

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?