Was sind die besten Praktiken für die Aufhebung der Submodulierung eines Git-Submoduls, um den gesamten Code zurück in das Kern-Repository zu bringen?
Antworten
Zu viele Anzeigen?Ich fand es bequemer, (auch?) lokale Commit-Daten aus dem Submodul zu holen, weil ich sie sonst verlieren würde. (Könnte sie nicht pushen, da ich keinen Zugriff auf die Fernbedienung habe). Also fügte ich submodule/.git als remote_origin2 hinzu, holte mir die Commits und führte sie von diesem Zweig zusammen. Ich bin mir nicht sicher, ob ich das Submodul remote noch als Ursprung benötige, da ich noch nicht genug mit Git vertraut bin.
Hier ist, was ich am besten und einfachsten fand.
Im Submodul-Repo, von HEAD, das Sie in das Haupt-Repo zusammenführen möchten:
git checkout -b "mergeMe"
mkdir "foo/bar/myLib/"
(identischer Pfad wie der, in dem Sie die Dateien im Haupt-Repository haben wollen)git mv * "foo/bar/myLib/"
(alle in den Pfad verschieben)git commit -m "ready to merge into main"
Zurück im Haupt-Repo nach dem Entfernen des Submoduls und dem Löschen des Pfades "foo/bar/myLib":
git merge --allow-unrelated-histories SubmoduleOriginRemote/mergeMe
fertig
erhaltene Geschichten
kein Problem
Beachten Sie, dass dies fast identisch mit einigen anderen Antworten ist. Aber das setzt voraus, dass Sie ein eigenes Submodul-Repo besitzen. Auch dies macht es einfach, zukünftige Upstream-Änderungen für Submodule zu erhalten.
- See previous answers
- Weitere Antworten anzeigen