Apenas para completar:
Há outra solução, eu recomendaria: mesclagem de subárvores .
Ao contrário dos submódulos, é mais fácil de manter. Você criaria cada repositório da maneira normal. Enquanto estiver no seu repositório principal, você deseja mesclar o mestre (ou qualquer outra ramificação) de outro repositório em um diretório do diretório 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"`
Em seguida, para puxar o outro repositório para o diretório (para atualizá-lo), use a estratégia de mesclagem de subárvore:
$ git pull -s subtree OtherRepository master
Estou usando esse método há anos, funciona :-)
Mais sobre essa maneira, incluindo compará-lo com submódulos, pode ser encontrado neste documento de instruções do git .