Git Flow против Github Flow

Опубликовано: 1 Сентября, 2022

Существует два основных способа управления программными проектами в GIT: Gitflow и GitHubflow . Эти два потока могут помочь вам управлять проектом и оптимизировать весь рабочий процесс в команде.

Поток GitHub

Поток GitHub действительно очень прост в адаптации, так как у этого потока нет выпусков, потому что ваше развертывание в рабочей среде происходит каждый день. В этом потоке участвуют два типа ветвей: основная ветвь и ветвь функций .

  • Когда вы работаете над проектом, вам нужно создать ветку Feature из вашей основной ветки и работать над ней.
  • После того, как вы разработали функцию и полностью протестировали изменения, вы можете создать запрос на включение (PR) в основную ветку.
  • После того, как изменения в функциональной ветке рассмотрены и одобрены по запросу PR, ветка объединяется с основной веткой.
  • Ветки позволяют работать над новыми функциями и исправлять ошибки.

Как создать новую ветку Feature из основной ветки с помощью проверки?

$ git checkout -b <branch-name>

Например, вы хотите создать новую ветку «Функция» из ветки «мастер». Для этого вам нужно вызвать команду «git checkout» с параметром «-b» и добавить имя ветки как «Feature».

Используя команду «git checkout», вы создаете новую ветку и автоматически переключаетесь на новую ветку.

Чтобы объяснить поток GitHub простыми шагами, обратитесь к следующим пунктам:

  • Вам нужно создать новую ветку из основной ветки, когда вы хотите разработать новую функцию или исправить ошибки.
  • Зафиксируйте свои изменения в функциональной ветке локально и продолжайте продвигать свою работу в той же функциональной ветке.
  • Когда вам нужна помощь или обратная связь, и вы считаете, что полностью разработали функцию и ваша ветка готова к слиянию, откройте запрос на включение (PR)
  • Когда кто-то просмотрит и утвердит изменения функциональной ветки, вы можете объединить ее с мастером.
  • Как только он будет объединен и отправлен в мастер, вы можете сразу же развернуть его.

Git поток

Git Flow обычно сложнее, чем GitHub. Он используется, когда ваше программное обеспечение имеет понятие «выпуск». Этот процесс отлично работает, когда вы работаете в команде из одного или нескольких разработчиков, и они совместно работают над одной и той же функцией.

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

  • Мастер: представление готового к производству состояния кода.
  • Разработка: представляет последние изменения в разработке.

Ветка функций

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

Релизная ветвь

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

Отделение исправлений

  • Ветки HotFix ответвляются от мастера и объединяются обратно для разработки и мастеринга.
  • Исправьте ошибку в ветке исправления, когда закончите с исправлением ошибки, объедините ветку исправления с мастером, затем создайте тег для дальнейшего использования и объедините изменения обратно в ветку разработки. Наконец, удалите ветку исправления.

С точки зрения CI/CD мы хотим развернуть только ветки разработки и мастер соответственно. Ветку разработки следует отправить в среду разработки или тестирования. Основная ветвь заканчивается в производственных средах.