Поскольку эти файлы внешнего интерфейса напрямую связаны с вашим основным приложением, решение субмодуля (изолирующее эти файлы в субмодулях) будет слишком громоздким.
Возможное решение, , если вы не хотите, чтобы они вообще видели ваши файлы в разделе ядра , - это настроить второе частное независимое репо, инициализированное только вашими файлами внешнего интерфейса.
Между этими двумя репозиториями не будет прямой связи, но по крайней мере:
- ваши разработчики могут вносить изменения в этот второй репо
- Вы можете регулярно извлекать в виде патчей любые изменения и применять их к своему локальному репо (перед отправкой в ваше первое частное репо)
- или вы можете извлекать как патчи ваши собственные изменения, сделанные вами на тех же самых файлах, и применять их ко второму репо.
Если вы не возражаете против того, чтобы они видели файлы ядра, но хотели только предотвратить какие-либо изменения в приложении ядра, тогда Mark Longair ' answer - ваше решение.
Примечание: Отметка напоминает мне в комментариях ниже, что Git-репо может иметь несколько корней (несколько коммитов без родителя).
Это означает, что вместо обмена сообщениями по почте и исправлениям вы можете напрямую импортировать ветку master
второго репо непосредственно в ваше первое частное репо, как независимую ветку (ветку без общая история с вашим текущим базовым кодом).
Оттуда вы можете cherry-pick
коммиты, которые вы хотите применить к своему собственному коду, или вы можете выбрать свою собственную эволюцию в эту независимую ветвь, прежде чем отправлять ее обратно во второй репозиторий (тот, что предназначен для разработчиков). работать).