Задать вопрос
TTATPuOT
@TTATPuOT
https://code.patriotovsky.ru/

Как вести два одинаковых проекта, имя возможность дорабатывать их вместе и по отдельности?

Здравствуйте!
Есть ситуация: есть текущий проект в git. Он работает и всё отлично. В репозитории git есть только одна ветка - она же релизная, без dev веток.
Сейчас появилась необходимость создать копию этого проекта для другой компании. Проект будет немного дописан под эту компанию, но в целом, кодовая база на 99% останется изначальная. Но в будущем, планируется улучшение как только изначального проекта, так и улучшения копии, а также общие улучшения их вместе.

Каким образом можно удобно вести работу над двумя проектами параллельно, имея возможность удобно дорабатывать оба проекта и каждый из них по отдельности?

Мои варианты:
1) Использовать два независимых друг от друга репозитория. Но здесь стоит вопрос в том, что неудобно будет вносить правки в оба проекта.
2) Использовать разные ветки внутри одного репозитория или подмодули.
3) Доработать текущий проект так, чтобы было 1 общее ядро, которое будет дорабатываться отдельно, а для каждой компании создать свой репозитории, где будут хранится "плагины" к этому ядру. Но в этом случае придётся значительно переписать текущий код.
Звучит лучше всего третий вариант, но на его реализацию потребуется достаточно много времени, чтобы чётко определить "границу" между плагином и ядром. Ну и переписывать так же нужно будет очень много.
  • Вопрос задан
  • 1245 просмотров
Подписаться 2 Средний Комментировать
Помогут разобраться в теме Все курсы
  • ProductStar
    Python + Flask + Git: веб-разработка с нуля
    2 месяца
    Далее
  • Учебный центр IBS
    DEV-007 Введение в систему контроля версий Git
    1 неделя
    Далее
  • Stepik
    Git (система контроля версий)
    1 неделя
    Далее
Решения вопроса 2
Alex_Wells
@Alex_Wells
PHP/Kotlin
Два репозитория. В обоих добавляете еще один origin - на другой проект.

Если нужно внести изменения в оба проекта, то сначала делаете это в одном, потом в другом проекте мерджите изменения с другого origin'а.

Писать код нужно максимально независимым. Используйте модульность, для модулей внешнее API и event/listeners для общения наружу. В местах где логика различается - по максимуму полиморфизм, и.е. избегайте мерджов всеми силами.

Второй вариант говно. Третий вариант слишком сложный.
Ответ написан
Комментировать
Robur
@Robur
Знаю больше чем это необходимо
1) вы себя проклянете, если правок будет хоть немного больше парочки.
2) это тот же 1) только сбоку. С точки зрения гита - мало разницы между втрой веткой в том же репо или такой-же веткой в другом репо. команды на мерж кода будут разные, все остальное - одно и то же.

оба норм если количество разных правок небольшое и работу над одним из проектов вы точно и стопроцентно завершите в ближайшем будущем.
Ну или если вы полностью разделите эти проекты, и работа над ними будет независима, тогда вариант 1)

3) правильный вариант. Стоит ли он потраченных усилий - это уж только вы сами можете оценить.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
Made In Dream Санкт-Петербург
от 100 000 до 220 000 ₽
от 250 000 до 320 000 ₽