img

Git Flow: что это и как работает

Git Flow - это специальная система ветвления для Git. Она помогает команде лучше контролировать и добавлять различные версии проекта. Узнайте, как ее использовать!

Что такое Git Flow

Git Flow - это один из множества стилей рабочих процессов Git - набор моделей ветвления для Git. Это огромный фреймворк для крупных проектов, который можно использовать для нужд вашей команды. Git Flow описывает цикл выпуска проекта и добавляет определенные роли в различные ветви. Он определяет, когда и как ветки взаимодействуют друг с другом. В этой модели существует два типа веток: Master и Develop. Develop - это интеграционная ветка для функций. Master хранит историю официального релиза. Этот дизайн ветвления был опубликован Винсентом Дриссеном в 2009 году и с тех пор стал очень популярным.

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

Основная ветвь (Master branch) хранит официальную историю релизов. Она содержит сокращенную версию вашего проекта и является основой модели ветвления с бесконечным сроком жизни.

Ветвь разработки (Develop branch) является интеграционной ветвью для функций. Она содержит полную историю вашего проекта и также имеет бесконечный срок жизни. Когда код в этой ветви становится стабильным и готовым к релизу, изменения сливаются в основную ветвь и помечаются номером релиза.

Поддерживающие ветви

Ветви функций (Feature branches) создаются для каждой новой функции. Их родительская ветвь — ветвь разработки. Функции никогда не должны взаимодействовать напрямую с основной ветвью.

Ветвь релиза (Release branch) создается, когда достаточно функций для релиза. Она позволяет одной команде работать над текущим релизом, пока другая команда продолжает работать над функциями для следующего релиза. Родительская ветвь релиза также — ветвь разработки. В этой ветви происходит непрерывная доставка.

Ветви исправлений (Hotfix branches) являются ветвями для обслуживания. Они создаются для быстрого исправления ошибок в продакшн-релизе. Эти ветви позволяют команде исправлять ошибки без прерывания рабочего процесса или ожидания следующего релиза. Их родительская ветвь — основная ветвь. Ветви исправлений — единственные ветви, которые можно создавать непосредственно от основной ветви. Вы можете автоматизировать создание ветвей исправлений: как только появляется ошибка, ветвь исправлений автоматически создается.

Почему стоит использовать Git Flow

  • Git Flow упрощает параллельную разработку, поскольку изолирует новую разработку от выпущенного проекта. Вы можете работать с любой версией проекта. Новая разработка осуществляется в ветвях функций и сливается обратно, когда разработчик удовлетворен кодом.
  • Ваша команда сможет лучше сотрудничать и тратить меньше времени на управление версиями проекта, если использует простую и понятную стратегию ветвления, такую как Git Flow.
  • Вы всегда можете зафиксировать изменения и создать новую ветвь функции, когда нужно прервать свою работу. Вы можете вернуться к своей функции в любое время.
  • Ветви исправлений позволяют вашей команде вносить экстренные изменения. Вам не нужно беспокоиться о том, что вы случайно объедините новую разработку одновременно.

Проблемы, которые решает Git Flow

  • Плохое качество кода
  • Недовольные клиенты
  • Удержание знаний
  • Менталитет "Не моя проблема"
  • Бессмысленная работа

Как реализовать Git Flow

Существует множество приложений, поддерживающих модель ветвления Git Flow и имеющих специфические настройки для Git Flow (например, SourceTree, SmartGit или GitKraken). Выберите подходящее приложение для вашей операционной системы, чтобы инициализировать Git Flow.

Настройте проект, следуя этим шагам:

  1. Начните использовать git-flow, клонируя существующий git-репозиторий.
  2. Создайте пустую ветвь разработки, чтобы дополнить основную ветвь master. Отправьте её на сервер.
  3. Разработка новых функций начинается с ветви разработки. Каждая функция находится в своей собственной ветви. Отправляйте ветви функций в git-репозиторий для резервного копирования.
  4. Слейте ветвь функции обратно в ветвь разработки, когда функция завершена.
  5. Создайте ветвь релиза, когда функции готовы к релизу. Родительская ветвь — это ветвь разработки.
  6. Слейте ветвь релиза в основную ветвь и пометьте её номером версии. После этого слейте её обратно в ветвь разработки, чтобы сохранить прогресс с момента релиза. Ветвь релиза будет удалена.
  7. Если нужно внести критические изменения, создайте ветвь исправлений. Форкните ветвь непосредственно от основной ветви. Когда изменения завершены, слейте ветвь исправлений в обе ветви — основную и ветвь разработки (или текущую ветвь релиза). Пометьте основную ветвь обновленным номером версии.

Распространенные ошибки при использовании Git Flow

  • Не все члены команды используют Git Flow. Важно, чтобы вся команда понимала и использовала один и тот же рабочий процесс для гладкого развития проекта.
  • Git Flow настроен для конкретного продукта. Эта настройка может быть слишком сложной для нового разработчика.
  • У команды слишком много функций, и они не успевают завершить их до релиза. Разработка уходит от продакшн-среды.

 

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
DevOps
Скидка 25%
DevOps-инженер с нуля
Научитесь использовать инструменты и методы DevOps для автоматизации тестирования, сборки и развертывания кода, управления инфраструктурой и ускорения процесса доставки продуктов в продакшн. Станьте желанным специалистом в IT-индустрии и претендуйте на работу с высокой заработной платой.
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
Git Flow - это специальная система ветвления для Git. Она помогает команде лучше контролировать и добавлять различные версии про
img
Docker — популярная платформа виртуализации на уровне ОС. Она поставляет приложения в пакетах (контейнерах), которые, представля
img
Хуки в Git — это bash-скрипты, которые запускаются до или после команд Git, например, коммитов и пушей. Они позволяют автоматизи
img
  Nomad и Kubernetes – это две самые популярные платформы оркестровки, предназначенные для оркестровки динамических рабочих нагр
img
  Давайте узнаем о новом Ops-течении – GitOps! DevOps поспособствовал цифровизации многих компаний. Речь идет о командах разрабо
img
  Канареечное (canary) развёртывание – это метод разработки и развертывания программного обеспечения, который позволяет выпускат
ОСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59