1) и 4) во многом зависит ваша строительная среда.В git вы пытаетесь иметь отдельные репозитории на модули, но если настройка исходного дерева становится болезненной, вы можете использовать подмодули git (хотя их не так много людей) или инструмент репо, используемый проектом Android.Это позволяет вам иметь «зонтичный» проект, состоящий из большего количества подпроектов.Не уверен, стоит ли это всего лишь нескольких компонентов.Только одно git-репо может иметь больше смысла.
Для вопросов 2) и 3):
Для доступа я бы порекомендовал, чтобы каждая подгруппа имела свой собственный форк (репозиторий) и кого-топроверяет, что они отправляют в репозиторий интеграции.Если вам не нравится такой подход, вы можете использовать ловушки git-сервера для принудительного применения политик написания сценариев.
В этом случае ловушка может проверять, кто нажимает, и путь или refspec (ветвь) для некоторого файла конфигурации, описывающегополитика.Это задокументировано здесь:
https://git -scm.com / book / en / v2 / Настройка-Git-An-Example-Git-Enforced-Policy