1

Я использую git для управления настройками дистрибутива и создания ISO для каждого варианта. В настоящее время у меня есть 4 филиала, не включая мастера. Как лучше всего управлять этими ветками, так как они обмениваются файлами, и я хочу легко перемещать изменения назад и вперед между ветвями. Я использую вишневый кирку, чтобы перенести изменения в каждую ветку. Тем не менее, я должен делать это для каждого коммита, который я хочу, и просматривать журналы для каждой ветви.

Какие еще у меня есть варианты, какие-нибудь другие идеи относительно того, как лучше организовать эти филиалы?

2 ответа2

2

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

Например, если ваши ветки распространения - one и two , то на следующем графике коммитов показано, что коммиты сделаны в основной ветке, затем изменения объединяются в каждую ветвь.

ветки распределения с изменениями, объединенными с мастером

# Create distribution branch and make it unique
git checkout -b one master
work... work...
git commit

# Make some changes on master
git checkout master
work... work...
git commit

# Merge the changes into the distribution branch
git checkout one
git merge master

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

1

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

Если различия относительно постоянны и сделаны в части базы кода, которая меняется не очень часто (например, установка переменных в разные значения в Makefile, в то время как большая часть разработки происходит в файлах исходного кода), я бы настроил ветви , сделайте разработку в master , а затем используйте git rebase master в ветках всякий раз, когда мне нужно их обновить.

Однако, если различия между ветвями сами по себе текучие, я бы merge и выбрал вишню по мере необходимости.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .