Als eine Teilmenge der Frage detach-subdirectory bereits vor und unter Berücksichtigung der Tatsache, dass, obwohl eine Menge Fragen über den Prozess der Aufteilung und Zusammenführung von Git-Repositories gemacht wurden, konnte ich nicht finde einen, der das Thema der Spaltung berührt, wenn Submodule vorhanden sind.Aufteilen eines Unterverzeichnisses mit Submodulen in ein separates Git-Repository
So in das folgende Szenario:
.git/
.gitmodules
folder/
data/
content/
other_data/
submoduleA/
submoduleB/
Ich möchte zwei Repositories mit der folgenden Struktur erhalten:
.git/
data/
und
.git/
.gitmodules
content/
other_data/
submoduleA/
submoduleB/
Der erste Fall ist kein Problem und kann leicht mit der in detach-subdirectory beschriebenen Methode gelöst werden.
Die zweite nicht so sehr. Die Existenz von Submodulen und die Tatsache, dass .gitmodules den vollständigen Pfad für folder/content/submoduleA
und folder/content/submoduleB
enthält, verursacht einen Teil des Verlaufs inkonsistent, da .gitmodules auf eine nicht vorhandene Verzeichnisstruktur verweist (sobald der Filterzweig verwendet wird).
So würde ich gerne wissen, ob es eine Möglichkeit gibt, dies zu tun, ohne inkonsistente Geschichte zu verursachen.
einen zweiten git filter-branch Befehl verwenden konnte ich .gitmodules mit einem sed-Befehl neu zu schreiben, aber die tatsächlichen Submodul-Ordner bleiben unberührt (beide mit Index-Filter und Tree-Filter). Nur der Unterverzeichnisfilter konnte sie ändern, aber dann wird .gitmodules entfernt. Der Split-Befehl des Git-Submoduls scheint genau das zu tun, was ich vorhabe, aber beim Lesen des Threads hatte ich den Eindruck, dass es ein paar Probleme hat, daher fühle ich mich nicht wohl dabei. – Unode
@Unode: Ich verstehe. Ich glaube nicht, dass dieser bestimmte Patch gerade aktiv entwickelt wird. – VonC