Менее раздражающий подход, чем git-submodules (которые неудобно использовать): gitslave Gitslave создает группу связанных репозиториев - репозиторий суперпроектов и несколько подчиненных репозиториев - все из которых одновременно разработан и на котором все операции git должны нормально работать; поэтому при ветвлении каждое хранилище в проекте разветвляется по очереди. Точно так же, когда вы фиксируете, нажимаете, извлекаете, объединяете, помечаете, извлекаете, статус, регистрируете и т.д .; каждая команда git будет выполняться в суперпроекте и во всех подчиненных хранилищах по очереди. Этот вид деятельности может быть очень знаком пользователям CVS и (в меньшей степени) пользователям Subversion. Конструкция Gitslave проста для обычных операций git.
Я также укажу вам etckeeper , который отслеживает разрешения. У него есть свои особенности, которые могут или не могут сделать его полезным для вас.
Наконец, я отмечу, что у вас может быть привычный скрипт после проверки, который устанавливает соответствующие разрешения для соответствующих файлов / каталогов.