Рабочий процесс Git и Gerrit

Я пытаюсь реализовать рабочий процесс типа «git-flow» с использованием Gerrit, но, похоже, не могу понять последнюю часть головоломки.

Есть две предпосылки моей проблемы:

Геррит выполнит слияние только с одной веткойЯ не позволяю коммитам слияния передаваться Герриту. Объединение должно быть выполнено Герритом после утверждения изменений.

Я хочу решить следующее. Рассмотрим ситуацию с git:

Master 0 
        \
         \
Develop   0-----0-----0-----0

Существует ветка master с одним коммитом и ветвь разработки, которая разветвляется от master с несколькими дополнительными коммитами. Через некоторое время ветвь разработки снова объединяется с master для создания следующего производственного выпуска. Разработчики работают с ветками тем от разработки и со строгим перебазированием. Их коммиты всегда перебазируются поверх последних разработок перед тем, как их выдвигать. Это должно привести к линейной истории и только к ускоренной фиксации.

Теперь предположим, что кто-то создает ветку исправлений из master и сливается обратно с master:

Master 0--------0 HF 
        \
         \
Develop   0-----0-----0-----0

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

Мой вопрос: как мне включить новые коммиты из ветки master в локальную ветвь разработки, чтобы любые новые изменения от разработчиков содержали исправление ошибки? В идеале я бы изменил свой сценарий, чтобы сначала применить изменения исправлений к локальной ветви разработки (слияние, но без фиксации слияния), а затем перебазировать коммиты dev и нажать. Таким образом, исправление будет автоматически добавлено к их новым изменениям и будет рассматриваться как таковое, как часть их новых коммитов, а не отдельного коммита.

Я думал о возможных решениях:

Черри выбирает коммит для развивающейся ветки. Я полагаю, что это всегда приведет к дублированию коммита, когда в следующий раз развернутся с master. Есть ли способ обойти это?Перебазирование, как описано здесь:http://davitenio.wordpress.com/2008/09/27/git-merge-after-git-cherry-pick-avoiding-duplicate-commits/ , Это, вероятно, вызывает проблемы, так как ветка разработки опубликована, или нет?

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

Ответы на вопрос(3)

Ваш ответ на вопрос