Является ли ветка Develop бесполезной в gitflow? - PullRequest
0 голосов
/ 08 февраля 2019

Каждый раз, когда я ищу правильный способ использования git в команде, мы всегда ссылаемся на git-flow.

Мы начали использовать эту схему в качестве нашей библии в начале.

enter image description here

Проход времени, и мы наконец-то обнаружили, что сохранение master в качестве стабильной ветви с помеченными коммитами было пустой тратой времени.

Зачем вам отмечать свою конюшнюсовершить, а затем НАЖМИТЕ, чтобы освоить ту же версию, которую вы уже пометили.Тег существует, вы можете вернуться к этому коммиту в любое время.Почему я должен заботиться о том, чтобы эта ветвь содержала только теги?

Вот Git-Flow, который мы используем, и он работает как чудо.

Мастер: На самом деле наша ветка разработки Release:Мы создаем ветку релиза, чтобы выполнить наш последний тестовый пример релиза, а затем добавляем исправление, если это необходимо.Feature: Мы разветвляемся от Master, чтобы создать функцию, затем отправляем запрос на получение master.

На самом деле это ЖЕ, как gitflow, без ветви, содержащей стабильный.

Еще одно преимущество -этот МАСТЕР является ветвью РАЗВИТИЯ.Поэтому, когда в проект приходит новый товарищ по команде, он может начать с клонирования проекта, и его мастер уже знаком с фактическим развитием.

В изображении:

enter image description here

Мой вопрос: зачем вам использовать оригинальный git-поток с 5 ветками, если вы можете управлять только 4 ветками с тем же результатом?

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

По моему мнению, у вашего рабочего процесса есть большая проблема: чрезмерное использование ветки разработки / мастера.

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

Предположим, у вас стабильная версия кода, и вы уже завершили фазу выпуска.Теперь вы верите, что все готово и создаете тег на master / development.Через некоторое время ваш клиент предупредит вас об ошибке, и вы не готовы к новой версии.Чем ты занимаешься?

Ваш единственный выбор - переход от мастера / разработки.Итак, функции, релиз и исправление выйдут от мастера.Еще один недостаток этого подхода заключается в том, что после устранения ошибки в ветви исправлений вы объедините ее в development / master, но не можете добавить тег в этот коммит, поскольку ветвь development / master, вероятно, тем временем переместилась, и ее будет больше (не проверены) функции, которые клиент не должен иметь.Я думаю, что это слишком много, и историю коммитов будет трудно понять в какой-то момент.НО, как я уже сказал в начале, это спорно.

Ваш рабочий процесс, кажется, смешивает разработку на основе git-потока и магистральной (или основной) разработки, но в основном принимает от них недостатки.

0 голосов
/ 08 февраля 2019

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

Тем не менее: рабочие процессы Git не даны богом.Git-flow получил довольно много критиков.Если ваша команда и команды, которые полагаются на ваш код, довольны, тогда переходите к рабочему процессу с минимальными издержками.

Последнее примечание:

Вот Git-Flow, который мы используем, и онработает как шарм.

Пожалуйста, НЕ назовите ваш рабочий процесс "git-flow".Выберите явно другое имя.Разбавление хорошего поискового запроса никому не поможет.

...