Git Flow против Github Flow
Существует два основных способа управления программными проектами в 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 мы хотим развернуть только ветки разработки и мастер соответственно. Ветку разработки следует отправить в среду разработки или тестирования. Основная ветвь заканчивается в производственных средах.