Solo para completar:
Hay otra solución, recomendaría: fusión de subárbol .
A diferencia de los submódulos, es más fácil de mantener. Crearía cada repositorio de la manera normal. Mientras esté en su repositorio principal, desea fusionar el maestro (o cualquier otra rama) de otro repositorio en un directorio de su directorio principal.
$ git remote add -f OtherRepository /path/to/that/repo
$ git merge -s ours --no-commit OtherRepository/master
$ git read-tree --prefix=AnyDirectoryToPutItIn/ -u OtherRepository/master
$ git commit -m "Merge OtherRepository project as our subdirectory"`
Luego, para extraer el otro repositorio en su directorio (para actualizarlo), use la estrategia de combinación de subárbol:
$ git pull -s subtree OtherRepository master
Estoy usando este método desde hace años, funciona :-)
Puede encontrar más información sobre esta forma, incluida la comparación con submódulos, en este documento de instrucciones de git .