, только чтобы избежать перекрестных слияний, но это не должно сильно измениться)
пользуем Gitflow для наших веб-сборок, и у меня есть вопрос о том, какhotfixes
должны работать. Но сначала я должен объяснить, что мы недовольно используйте обычный рабочий процесс Gitflow.
Я понимаю, что обычно вы быfeatures
они слились бы вdevelop
когда закончите, вы создадите свойrelease
, release
сливается сmaster
и вы развернете это, как фактический «версионный выпуск».
Однако, так как это работа клиента, мы не делаем «релизы», вместо этого функции развертываются по мере необходимости, поэтому изменения по сравнению с нашимиfeature
ветви объединены вmaster
на специальной основе.
Это вызвало проблемы, так какfeature
ветви были разветвлены отdevelop
который был далеко впередиmaster
; объединяя этиfeature
разветвляется вmaster
объединит другие изменения вmaster
(изменения, которые присутствовали вdevelop
в то времяfeature
был разветвлен, что еще не было вmaster
). Мы знали, что это не то, как спроектирован Gitflow, но нам нужна была какая-то модель ветвления, поэтому мы (вроде) решили эту проблему, выбирая коммиты вместо слияния ветвей.
Итак, я понимаю эти проблемы и не верю, что они способствуют той проблеме, которая у меня есть сейчас, но на всякий случай, именно так мы ее используем. Однако мой вопрос:
Какhotfixes
предполагаемый объединить?
В моей голове сценарий таков:
master
это "производство"develop
впередиmaster
Затем вы хотите исправить немедленную проблему сhotfix
ветка. В Gitflow это ветки изmaster
и когда вы закончитеhotfix
, это сливается вmaster
а также develop
Но как это не вызывает огромных проблем?
Недавно я попытался создатьhotfix
изменить одну строку копии в одном файле. Я закончилhotfix
и изменение слилось вmaster
без проблем, но когда надоело сливаться сdevelop
, он создал огромный 35-файловый файл с несколькими конфликтами слияния в файлах, которых я не трогал, из-за несоответствия междуdevelop
а такжеmaster
.
Я понимаю, что это потому, что вы объединяетеhotfix
веткакоторый был сам по себеmaster
вdevelop
не конкретноменять или одинсовершитья так понимаюЗачем произошел массовый коммит / конфликт слияния.
Тем не менее, что яне понять, с учетом этого, какhotfixes
работать вообще "в реальном мире", учитывая, что они разветвляются отmaster
а затем слились вdevelop
что, по замыслу, намного впередиmaster
, Вот почему я не думаю, что проблема в том, как мы используем Gitflow, потому чтоdevelop
будет впередиmaster
независимо от нашего нестандартного процесса развертывания - я не могу понять, почему это не вызывает огромных головных болей, независимо от проекта или точного рабочего процесса.
То, что не имеет смысла для меня, это то, что вашhotfix
может быть что-то так просто, как изменениеtrue
кfalse
или изменить адрес электронной почты, что угодно, но чтобы получить его вmaster
Возможно, вам придется бороться с огромным набором конфликтов слияния. Это просто стандартное поведение? Это просто какhotfixes
работать, и если вам придется сесть и разобраться в массовом конфликте слияний, то так и будет? Не будет ли проще просто набрать коммит? Просто кажется, что существует такая огромная область, чтобы ввести ошибку для того, что может быть таким крошечным изменением - вы имеете дело с двумя ветвями, которые, возможно, находятся на расстоянии нескольких месяцев и сотен коммитов друг от друга.
Я могу просто неправильно понять процессhotfixes
, но если я, я не уверен, какой бит.