Каждый проект свой git реп с submodules (ядро + модули)
Разработку во всех репах вести по методологии gitflow: master (или release), ветка develop (является родительской для мастера), фичаветки (активная разработка фич, фик и т.д.). С фичаветки в девелоп, проверяем, сливаем в мастер. Заказчику уходят только мастера репов!
Главное грамотно разделять на модули! И наверное придётся следить за таким моментом: в модуль добавили фичу, которая требует поравить ядро. Необходимо перед деплоем убедиться, что модуль и ядро соответствуют! На 5+ модулях это делать в ручную уже так себе!
Удачи!