Недавно я нашел три концепции рабочего процесса в GIT: GitFlow, GitHub Flow и GitLab Flow. Я прочитал эту статью (https://docs.gitlab.com/ee/workflow/gitlab_flow.html), но я не очень хорошо понимаю GitLab Flow. Может быть, потому что я не носитель языка:)
Коротко.
GitFlow (https://docs.gitlab.com/ee/workflow/gitdashflow.png).
У нас есть филиал мастера как производственная отрасль. Также у нас есть отрасль разработки, где каждый разработчик объединяет свои функции. Иногда мы создаем ветвь выпуска для развертывания наших функций в процессе производства. Если у нас есть ошибка в ветки релиза, исправьте ее и потяните за изменения в ветку разработки. Если у нас есть критическая ошибка в производстве, создайте новую ветку исправлений, фикцию ошибок и слияние с производством (master) и создайте ветки.
Этот подход очень хорошо, если мы редко показываем результаты нашей работы. (Может быть, время в 2 недели).
GitHub Flow (https://docs.gitlab.com/ee/workflow/github_flow.png).
У нас есть филиал мастера как производственная отрасль. И мы (как разработчики) можем создавать ветки для добавления новых функций или исправления ошибок и объединения их с производственной (основной) ветвью. Звучит очень просто. Этот подход подходит для экстремального программирования, когда производственная ветвь развертывается несколько раз в день.
GitLab Flow (https://docs.gitlab.com/ee/workflow/production_branch.png, https://docs.gitlab.com/ee/workflow/environment_branches.png, https://docs.gitlab.com/ee/workflow/release_branches.png).
Я видел новые термины, такие как предварительная, производственная, релизная (стабильная) ветвь и промежуточная среда, предпроизводственная среда, производственная среда. Какие отношения между ними существуют?
Я так понимаю: если нам нужно добавить новую функцию, мы разворачиваем предпроизводственную ветку из главной ветки. Когда мы закончим эту функцию, мы разворачиваем производственный отдел из предпроизводственного ветки. Предпроизводственная отрасль - промежуточный этап. И тогда главная ветвь выведет все изменения из производственной ветки.
Подход хорош, если мы хотим видеть каждую отдельную функцию. Мы просто проверяем в ветке, что нам нужно и смотрим.
Но если нам нужно показать нашу работу, мы создадим ветвь релиза с тегом как можно позже. Если позже мы исправим ошибки в главном ветки, нам нужно заштриховать их до последней ветки релиза. В конце у нас есть ветвь релиза с тегами, которые могут помочь нам перемещаться между версиями.
Является ли мое видение правильным? Какая разница между тягой и вишневым выбором?