Справочные файлы из одного хранилища в другой

У меня есть git-репозиторий с большим количеством исходных файлов. Я хотел бы создать новый репозиторий, где некоторые файлы из существующего репозитория будут указаны в новом репозитории.

Пример:

Репозиторий A содержит:

  • Справочник 1
    • Исходный файл 1
    • Исходный файл 2
  • Справочник 2
    • Исходный файл 3
    • Исходный файл 4

В Repository BI хотелось бы ссылаться на исходный файл 3 из репозитория A:

  • Справочник 3
    • Исходный файл 5
    • Исходный файл 3 из репозитория A.

Репозиторий B будет распространяться среди разработчиков, у которых не все имеют доступ к репозиторию A.

Поэтому мой вопрос: возможно ли ссылаться на некоторые файлы из одного репозитория на другой, так что когда разработчики, имеющие доступ к репозиторию А, меняют исходный файл, изменения будут обнаружены в репозитории B? Если это возможно, как я могу это сделать?

Git рассматривает файлы как содержимое всего репозитория, а не как набор файлов. Поэтому это довольно сложно сделать. Если эта функция критическая, я предлагаю перейти к файловой системе SCM.

Однако это возможно, но довольно неуклюжий.

создайте сиротскую ветвь в репо B с файлом, который вы хотите отслеживать. Слейте этот файл в другую ветвь в репо B, например главную ветвь, можно использовать алгоритм слияния поддерева.

Вы можете использовать gitolite, чтобы ограничить доступ к одной ветке из вашего репо. Теперь вы можете добавить repo B в repo A с субмодулем или как удаленный и выполнить слияние поддерева. (вы можете узнать больше о том, как обрабатывать подмодули и сложение поддерева на git-scm.com).

Однако вы не можете использовать gitolite для отказа от чтения из всего репо B, просто напишите доступ. Если вы также ищете профилактику чтения, вам нужно поставить файл в репо C