У меня есть приложение (cms), структура которого выглядит следующим образом:
BASE:
/application/
/public/
themes/
default/
mobile/
Это базовый, центральный репозиторий для всех наших проектов.Затем проекты получают свой собственный скин: (, основанный на /default/
theme )
CLONE1:
/application/
/public/
themes/
default/
mobile/
own/
...
own-theme-12/
(это приложение имеет 12 пользовательских тем, основанных на теме по умолчанию).
Все дело в поддержании приложений и обновлении всех клонов с помощью BASE.
Теперь мы добавим BASE в качестве удаленного репо:
(/clone1/)$ git remote add base-repo /path/to/base.git
Затем потяните заобновления при необходимости:
(/clone1/)$ git pull base-repo develop
Когда .php
файлы в /application
изменены, все работает отлично.Проблема начинается, когда мы изменяем файлы в теме default
в репозитории BASE (например, опечатка в reset.css
).Нам нужны эти изменения в теме CLONE1/default
и во всех темах CLONEx/own-x/
.
Конечно, потребуется некоторый скрипт bash, чтобы указать, куда копировать и фиксировать изменения, но как сохранить все это всинхронизировать без конфликтов слияния?
Мы используем git flow
.Темы default
и mobile
пока не находятся в отдельных ветках.Нужны ли они нам?Мы пока не используем подмодули.
Есть много способов организовать этот рабочий процесс, но какой из них вы бы выбрали как оптимальный?