Juste pour être complet :
Il existe une autre solution, que je vous recommande : fusion de sous-arbres .
Contrairement aux submodules, il est plus facile à maintenir. Vous créerez chaque dépôt de la manière habituelle. Alors que dans votre dépôt principal, vous voulez fusionner le master (ou toute autre branche) d'un autre dépôt dans un répertoire de votre répertoire principal.
$ git remote add -f ThirdPartyGitRepo /project_root/
$ git merge -s ours --no-commit ThirdPartyGitRepo/master
$ git read-tree --prefix=third_party_git_repository_used_by_my_project/ -u ThirdPartyGitRepo/master
$ git commit -m "Merge ThirdPartyGitRepo project as our subdirectory"`
Ensuite, afin de tirer l'autre référentiel dans votre répertoire (pour le mettre à jour), utilisez la stratégie de fusion de sous-arbres :
$ git pull -s subtree ThirdPartyGitRepo master
J'utilise cette méthode depuis des années maintenant, elle fonctionne :-)
Plus d'informations sur cette méthode, y compris la comparaison avec les sous-modules, peuvent être trouvées dans ce git. manuel d'utilisation .