Antworten:
Es hört sich so an, als ob Sie Git- Submodule verwenden möchten .
Git behebt dieses Problem mithilfe von Submodulen. Mit Submodulen können Sie ein Git-Repository als Unterverzeichnis eines anderen Git-Repositorys behalten. Auf diese Weise können Sie ein anderes Repository in Ihr Projekt klonen und Ihre Commits getrennt halten.
Ich habe immer Symlinks verwendet, um zwei separate und unterschiedliche Repos zu verwalten.
.gitignore
?
rsync -avh --delete --exclude='.git' REPO-B/ REPO-A/REPO-B-copy/
nachdem es irgendwelche Änderungen an REPO-B
Ja, Sie können mit der von Ihnen gezeichneten Dateihierarchie genau das tun, was Sie verlangen. Repo-B ist unabhängig und hat keine Kenntnisse über Repo-A. Repo-A verfolgt alle Änderungen in seinen eigenen Dateien und in den Dateien von Repo-B.
Ich würde dies jedoch nicht empfehlen. Jedes Mal, wenn Sie Dateien ändern und in Repo-B festschreiben, müssen Sie in Repo-A festschreiben. Das Verzweigen in Repo-B führt zu Problemen mit Repo-A, und das Verzweigen in Repo-A ist schwierig (Probleme beim Entfernen von Ordnern usw.). Submodule sind definitiv der richtige Weg.
Sie können erreichen, was Sie wollen (dieses REPO-A-Repo enthält alle Dateien, einschließlich der Dateien im Ordner REPO-B anstelle nur einer Referenz), indem Sie "git-subrepo" verwenden:
https://github.com/ingydotnet/git-subrepo
Es funktioniert immer noch, wenn einige Ihrer Mitwirkenden den Befehl subrepo nicht installiert haben. Sie sehen die vollständige Ordnerstruktur, können jedoch keine Änderungen an den Unterrepos vornehmen.