Создайте три репозитория Git: core
, app_1
, app_2
. В каждом из репозиториев app
создайте подмодуль Git, ссылающийся на репозиторий core
.
Рассматривайте репозиторий core
как чистую библиотеку, а репозитории app
как чистых потребителей библиотеки, структурируя три проекта таким образом, чтобы вы могли сохранить все общее для двух "версий" в репозитории core
и все будет расходиться между двумя версиями в app
хранилищах. Структурируйте репозитории app
таким образом, чтобы проект core
можно было размещать оптом, без каких-либо изменений, в подкаталог в репозиториях app
. Вам может потребоваться минимальный общий сценарий инициализации, общий для всех app
репозиториев, но это небольшая цена.
Сценарий структурирования кода таким способом очень распространен. Хотя использование Git таким образом для поддержки этого сценария архитектуры кода встречается гораздо реже, это рассматривается как реальная возможность.