J'ai un dépôt git principal A et nous utilisons des sources d'un autre dépôt git B dans un sous-répertoire de notre projet principal. Maintenant, il serait bon que le référentiel B soit extrait dans le référentiel A de ce sous-répertoire utilisé. Si quelqu'un d'autre clone ensuite le référentiel, bien sûr, il devrait obtenir notre référentiel principal A et dans celui-ci automatiquement le référentiel B.
Permettez-moi de visualiser la structure du répertoire:
+ main_repository - le répertoire racine du référentiel principal + src - répertoire contenant la source + foreignRepo - ce devrait être le répertoire racine d'un autre dépôt git + binaires + autres
Cela doit également être connu dans le référentiel distant, juste une copie locale ne m'aide pas, car d'autres personnes vérifient cela et doivent être en mesure de compiler toutes les choses.
Vous voudrez en savoir plus sur sous-modules Git .
Utilisation git subtree
dans la version 1.7.11 et supérieure de git. git subtree
est supérieur au git submodule car:
git subtree
n'exige pas que les utilisateurs de votre référentiel apprennent quelque chose de nouveau, ils peuvent ignorer le fait que vous utilisez un sous-arbre pour gérer les dépendancesgit subtree
n'ajoute pas de nouveaux fichiers de métadonnées comme git submodule
fait (comme .gitmodule
)De plus, si vous devez détacher une sous-arborescence de votre référentiel existant dans un nouveau référentiel , git subtree split
peut vous aider.
MISE À JOUR Février 2020: De nos jours j'aime subrepo encore plus.
Vous pouvez imbriquer deux git repo sans utiliser de sous-modules. Supposons que ChildRepo est un sous-répertoire de ParentRepo, et les deux sont des référentiels git.
+ ParentRepo
- ChildRepo
Si vous ajoutez un fichier à ChildRepo, ParentRepo l'ignorera. Lorsque vous le validez, il sera ajouté à ChildRepo. Il n'est pas possible d'ajouter des fichiers dans ChildRepo à ParentRepo.
Plus d'informations: Gchats de repo GIT imbriqués!