Vous êtes probablement pour submodules:
Submodules permettent des dépôts étrangers à être intégrés dans un sous-répertoire dédié de l'arbre source, toujours pointé à commettre particulier.
Un mot clé est intégré: un clone réel de Common.git serait incorporé dans chacun des autres projets. Ceci est généralement bon lorsque vous ne le modifiez pas dans les autres projets, utilisez juste une version, et mettez à jour cette version de l'original Common.git de temps en temps. Tu ferais quelque chose comme ceci:
# add Common.git as a submodule at the path "common" inside this repo
git submodule add /var/Common.git common
# initialize it, clone, and check out a copy
git submodule update --init
# commit the addition of the submodule
git commit
Notez que le chemin vers le sous-module va être engagé dans votre dépôt, vous devez donc utiliser une URL accessible au public. Si vous souhaitez le personnaliser localement, vous pouvez exécuter git submodule init
, modifier l'URL dans .git/config, puis exécuter git submodule update
. Si vous avez d'autres questions, consultez la page de manuel ou recherchez SO; il y a beaucoup de questions sous-module ici.
Si d'autre part vous allez éditer le contenu de Common.git dans chacun des projets, vous pouvez utiliser git-subtree, qui est un wrapper amical autour des facultés de fusion de sous-arbres de git. Cela vous permettra de considérer le contenu de common.git comme un contenu suivi dans chacun des projets, tout en étant capable de séparer les validations et de les fusionner en Common.git lui-même, et de fusionner les mises à jour de Common.git dans les projets .
https://git.wiki.kernel.org/index.php/GitSubmoduleTutorial –