Submodule (Git): Unterschied zwischen den Versionen
all>Verkehrsminister Die Seite wurde neu angelegt: „= Ein Git-Unterverzeichnis doch in ein Submodul umwandeln = Siehe auch http://blog.davidecoppola.com/2015/02/how-to-create-git-submodule-from-repository-subdi…“ |
K 1 Version importiert |
||
(kein Unterschied)
| |||
Aktuelle Version vom 18. April 2020, 13:55 Uhr
Ein Git-Unterverzeichnis doch in ein Submodul umwandeln
Siehe auch http://blog.davidecoppola.com/2015/02/how-to-create-git-submodule-from-repository-subdirectory/, dort ist auch erklärt, wie man einzelne Unterverzeichnisse herausfiltert und in ein eigenes Repository schiebt
Szenario
Ich hatte in meinem Projekt eine externe Bibliothek eingebunden, diese lag komplett geklont vor. Nun habe ich mein Projekt auch git-versioniert. Dabei wurde die externe Bibliothek nicht berücksichtigt, weil diese ja dann ein Repository in meinem Repository war. Ich muss die Externe also in ein Submodul wandeln.
Die Schritte im einzelnen
1. externe Bibliothek löschen bzw. an einen anderen Ort sichern
2. Löschvorgang commiten:
git commit -m "Removed Library directory to replace it with submodule."
3. externe Bibliothek als Submodul hinzufügen
git submodule add LIB-URL [LIB-DIR] // Dazu ein Beispiel: git submodule add https://android.googlesource.com/platform/frameworks/volley volley
4. Diese Änderung committen (und pushen)
git commit -m "Replaced Library directory with submodule." git push origin master
Wie weiter?
Wenn ich mein Projekt jetzt clone, dann mache ich das rekursiv, damit das Submodul ebenfalls geklont wird. Das Submodul wird immer in den Stand geklont, in dem ich es in meinem Projekt festgehalten habe, deswegen ist dort der Status nach dem rekursiven Clonen idR. HEAD detached, auch wenn wir in der höchsten Revision sind.