Поддержание проекта с помощью Git
У меня есть 2 проекта, и на самом деле эти 2 проекта примерно на 80% одинаковы, в основном разница - это только язык и бизнес-модель, одна для большей аудитории, использующая английский язык и имеющая бизнес-модель 9 долларов в месяц, другой использует локальный язык с бизнес-моделью freemium.
Когда-нибудь, когда я хочу добавить новую функцию/функциональность, я хочу добавить ее в оба проекта, но иногда я хочу добавить функцию, особенно для локального проекта.
Мой вопрос: как мне поддерживать эти 2 проекта с помощью git?
- Поддержание 2 git репозитория для каждого проекта или
- Поддерживать единый репозиторий git с 2 главным образом ветвью или
- Любое другое предложение?
Ответы
Ответ 1
создайте три проекта git:
-
один "основной" проект: он содержит
код, разделяемый между двумя другими
проекты
-
ваш английский проект: он имеет
подмодуль для ядра плюс специфический
код
- ваш переведенный проект: он также
имеет подмодуль для ядра плюс
конкретный код
таким образом вы можете изменить свой основной проект, обновить ссылки на подмодули, и вы были бы хороши
Ответ 2
Возможно ли, чтобы вы справились с этим через конфигурацию и локализацию? То есть:
- Одна база кода
- Два файла локализации, содержащие строки на английском и локальном языках
- Конфигурация для каждой версии веб-сайта, определяющая модель оплаты/включенные функции и изменяя поведение соответственно.
Мое личное мнение состоит в том, что один проект = один репозиторий. Если ваши веб-сайты явно отличаются друг от друга, я по-прежнему думаю, что ваша проблема может быть решена лучше путем реорганизации общего кода в модули, которые можно настроить и модифицировать разумным, контролируемым образом. Если вы позволяете каждому проекту иметь собственный репозиторий git, то без тяжелой работы они могут легко расходиться и содержать различия, которые нелегко отслеживать, вводя тонкие ошибки или непроверенные функциональные возможности.