Incluyendo partes de diferentes repositorys git en un directory

Tengo n repositorys con contenido que me gustaría poner a disposition en un directory de mi server. El directory del server se escaneará dinámicamente para que el contenido funcione con ese contenido.

Sin embargo, me gustaría mantener los repositorys que me gusta importar tal como están. No quiero fusionarme ni realizar tareas de una sola dirección. Los repositorys de origen realmente deberían seguir siendo independientes.

Cuando git pull de mi directory de server, me gustaría actualizar todos los files a los que me suscribí . Tenga en count que no tiene que ser git pull pero se entiende a qué me refiero.

Así es como debe verse (hay más files y repositorys, es solo un ejemplo):

 - github - repo 1 with 10 files - repo 2 with 5 files - server - content-directory - 2 files "subscribed" out of repo 1 - 1 file "subscribed" out of repo 2 

Los cambios en los repositorys de github deben aplicar a los files del directory del server tan pronto como haga algo como git pull allí.

¿Hay una forma simple de hacer esto?

Mi enfoque: crear clones de esos repositorys en content-directory pero luego obtendría todo el repository, aunque solo quiero algunos files. .gitignore evita la carga, pero no la descarga .

Tal vez ya hay una buena manera en que simplemente no sé.

Por lo que sé, no hay una funcionalidad nativa de Git para esto, pero probablemente puedas get los resultados que deseas utilizando enlaces simbólicos , que están disponibles en sistemas POSIX pero también en Windows con NTFS .

Asumiré un sistema Linux aquí.

Compruebe sus repositorys en algún lugar fuera de su directory de contenido:

 $ cd /some/directory/repos $ git checkout https://github.com/user/repo-a.git $ git checkout https://github.com/user/repo-b.git $ ls repo-a/ repo-b/ 

Ahora, vincule los files que desea de cada repository al directory de contenido de su server:

 $ cd /path/to/server/content/directory $ ln -s /some/directory/repos/repo-a/file1 . $ ln -s /some/directory/repos/repo-a/file2 . $ ln -s /some/directory/repos/repo-b/file1 file1b 

Los files aparecen en el directory, pero si usa una list larga ( -l ) puede ver que realmente son enlaces a otros files:

 $ ls file1 file1b file2 $ ls -l file1 -> /some/directory/repos/repo-a/file1 file1b -> /some/directory/repos/repo-b/file1 file2 -> /some/directory/repos/repo-a/file2