Réponses:
Il semble que vous souhaitiez utiliser des sous-modules Git .
Git résout ce problème à l'aide de sous-modules. Les sous-modules vous permettent de conserver un référentiel Git en tant que sous-répertoire d'un autre référentiel Git. Cela vous permet de cloner un autre référentiel dans votre projet et de séparer vos commits.
J'ai toujours utilisé des liens symboliques pour maintenir deux dépôts séparés et distincts.
.gitignore
?
rsync -avh --delete --exclude='.git' REPO-B/ REPO-A/REPO-B-copy/
après qu'il y ait des changements à REPO-B
Oui, vous pouvez faire exactement ce que vous demandez avec la hiérarchie de fichiers que vous avez dessinée. Repo-B sera indépendant et n'aura aucune connaissance de Repo-A. Repo-A suivra toutes les modifications dans ses propres fichiers et les fichiers de Repo-B.
Cependant, je ne recommanderais pas de faire cela. Chaque fois que vous modifiez des fichiers et que vous vous engagez dans Repo-B, vous devrez vous engager dans Repo-A. Le branchement dans Repo-B perturbera Repo-A et le branchement dans Repo-A sera bancal (problème de suppression de dossiers, etc.). Les sous-modules sont définitivement la voie à suivre.
Vous pouvez obtenir ce que vous voulez (ce dépôt REPO-A contient tous les fichiers, y compris ceux du dossier REPO-B au lieu d'une seule référence) en utilisant "git-subrepo":
https://github.com/ingydotnet/git-subrepo
Cela fonctionne toujours si certains de vos contributeurs n'ont pas installé la commande subrepo; ils verront la structure complète des dossiers mais ne pourront pas valider les modifications des sous-dépôts.