Ich habe ein Git Repository mit der folgenden Struktur:Git-Zweigs als Submodul zu besitzen Repository
repo - /folder1
- /folder2
...
Diese Repo hat 2 Niederlassungen:
repo ┌--------- master
|
└--------- branch1
Ich möchte als Submodul dies hinzuzufügen branch1 Repo, so dass ich die folgende Struktur haben:
repo - /folder1 - /branch1 (submodule)
- /folder2
...
ich weiß, es möglich ist, ein Modul hinzufügen, die einen BH Tracks nch statt nur einem bestimmten begehen, aber wenn ich den Repo als seine eigene Submodul Zugabe Versuch Ich kann das Ergebnis nicht verpflichten, bekomme ich folgende Fehlermeldung:
fatal: git cat-file :0:folder1/branch1: bad file
Unable to checkout folder1/branch1
Lauf git-fsck gibt eine große Liste von baumelnden Blobs.
Nach meinem Wissen habe ich niemanden gefunden, der versucht, dies zu tun. Ich habe auch nichts in der Dokumentation gefunden, dass dies nicht möglich ist.
Kann jemand mit mehr Wissen von Git Interna erklären, warum dies nicht möglich ist/funktioniert nicht?
Okay, danke. Könnten Sie eine Erklärung hinzufügen, warum das nicht funktioniert? Liegt es an doppelten Objekten im selben Repo? –
Ok, wenn Sie 'git submodule add folder1/branch1' und dann' cd folder1/branch1' verwenden, werden Sie alle Zweige finden, die in Submodul von 'git branch -a' hinzugefügt werden. Und wenn die aktuelle Verzweigung Branch1 für das Hauptrepo ist, nachdem Sie 'cd folder1/branch1' verwendet haben, können Sie' git checkout master' verwenden und 'cd ..' und' cd..' verwenden. Sie werden feststellen, dass Ihr aktueller Repo-Zweig immer noch Branch1 ist. Sie wechseln nur das Repo des Submoduls zum Master-Zweig. –
Aber eigentlich müssen Sie kein Submodul oder Teilbaum für das eigene Repo hinzufügen. Wir verwenden hauptsächlich Submodul und Subtree, um die Repos eines anderen Repos im aktuellen Repo hinzuzufügen. So können Sie die Struktur Ihres Repos auch direkt nach Belieben aufräumen, da alle Dinge nur in einem Repo liegen. –