Моя ситуация:
Недавно я присоединился к интерфейсу установленного проекта, который включает в себя все большее число экземпляров приложения rails, каждый из которых отличается некоторыми аспектами (представлениями, стилями, настройками и т.д.), но которые все разделяют большинство их обратного кода.
Наш Git repo имеет несколько ветвей, которые выглядят примерно так:
master
apple
banana
cherry
...
strawberry
tangerine
...
Если каждая ветвь, полученная из фруктов, содержит производственный код для производственного экземпляра.
(Мастер не используется для активного развертывания, но содержит весь общий код и является тем, к чему мы клонировали, чтобы настроить новый экземпляр.)
Моя проблема:
Работа, характерная для одного экземпляра, достаточно проста, происходит в том, что в ветке (или в ее ветки) и т.д. и т.д.
Однако, если мне нужно внести изменения, которые будут влиять на все сайты в кластере, я делаю это на данный момент в ветки dev и объединять его в master, а затем (что мне надоедает) приходится вручную проверять каждую продукцию разветвляются по очереди и объединяют в нее мастер.
Даже мой скромный мозг обезьяны кода может видеть, что это плохо масштабируется.
На данный момент у нас есть что-то вроде 8 производственных отделений, так что это не так уж плохо, но план для роста, и к тому времени, когда это дойдет до 20 (не говоря уже о 50+), это будет серьезная боль. Это также будет моей личной болью, поскольку я тот, кто, вероятно, будет иметь дело с этим на повседневной основе.
Итак, мои актуальные вопросы:
- Есть ли что-то в функциональности ядра Git, которое мне не хватает, что позволит мне элегантно слиться с мастером на n других ветвей одним махом? (вряд ли я думаю, но, тем не менее, стоит спросить)
- В качестве альтернативы, может ли быть способ сделать это с помощью хитрых сценариев оболочки? (из которых я мог бы добавить, я знаю очень мало, и понимаю даже меньше).
Если последний из них может помочь мне начать/указать мне в правильном направлении?
Большое спасибо за ваше время и помощь.