
Git-Submodule sind eine Möglichkeit, ein Git-Repository als Unterverzeichnis eines anderen einzuschließen Repository. Diese Art der Quellcode-Verschachtelung kann für Projekte, die eine genauere Kontrolle über ihre Abhängigkeiten und den Erstellungsprozess wünschen, sehr nützlich sein und ist einfach einzurichten.
Warum Submodule verwenden?
Wenn Sie einem Git-Repository ein Submodul hinzufügen, erstellen Sie im Wesentlichen eine Verbindung zwischen den beiden Repositorys. Das Haupt-Repository und das Submodul-Repository können unabhängig voneinander aktualisiert werden. Das übergeordnete Repository enthält eine Remote-URL sowie einen Verweis auf die ausgecheckte Commit-ID im Verlauf des Submoduls. Wenn Sie das übergeordnete Repository klonen, werden auch die Untermodule geklont.
Dies kann nützlich sein, wenn Sie ein Projekt haben, das vom Code eines anderen Projekts abhängt, und Sie die beiden Projekte (und ihre Versionsverläufe) getrennt halten möchten, aber dennoch problemlos mit beiden arbeiten möchten.
< p>Die primäre Alternative zu Submodulen ist die Verwendung von Paketmanagern wie NPM, NuGet oder Maven. Paketmanager stellen ein zentrales Repository mit Paketen und Bibliotheken bereit, die einfach installiert und aktualisiert werden können. Sie müssen jedoch eine bestimmte Version jedes Pakets veröffentlichen, das Sie nutzen möchten. Und wenn Ihr Code privat ist, müssen Sie Ihre eigene private Paketregistrierung verwenden.
Mit Git-Submodulen können Sie Abhängigkeiten genauer verwalten als mit den meisten Paketmanagern. Mit Submodulen können Sie genau auswählen, welche Versionen jeder Abhängigkeit Sie in Ihr Projekt aufnehmen möchten, und es ist einfacher, die Commit-ID des Submoduls zu aktualisieren, als ein neues Paket zu veröffentlichen.
Submodule erleichtern auch die Wartung und Verwendung von Zweigen gängiger Bibliotheken, wofür sich viele Unternehmen entscheiden, wenn zusätzliche Funktionen oder Anpassungen erforderlich sind. Wenn Sie letztendlich ein Repository für das Modul verwalten und eine detaillierte Kontrolle über Ihre Abhängigkeiten benötigen, sollten Sie die Verwendung von Submodulen anstelle von Paketmanagern in Betracht ziehen.
So verwenden Sie Git-Submodule
Wenn Sie ein Repository klonen, das bereits Submodule verwendet, wurde die meiste Arbeit bereits für Sie erledigt. Ihr Git-Client sollte das Submodul-Repository automatisch klonen und herunterladen und es sollte aktualisiert werden, wenn andere Betreuer Änderungen am Submodul vornehmen.
Wenn dies nicht der Fall ist, müssen Sie möglicherweise git clone mit dem Flag –recursive ausführen, das alle Submodule scannt und aktualisiert.
git clone –recurse-submodules URL
Das Hinzufügen eines neuen Submoduls ist ziemliech direkt. Wenn Sie ein brandneues Submodul aus einem Quell-Repository hinzufügen, müssen Sie nur git submodule add ausführen:
git submodule add URL submodule_directory
Dadurch wird das Submodul-Repository von der URL heruntergeladen und klonen Sie es in den Ordner „submodule_directory“.
Wenn Sie jedoch einen vorhandenen Ordner konvertieren möchten, ist der Vorgang etwas komplizierter. Sie können unsere Anleitung zum Konvertieren eines Verzeichnisses in ein Submodul hier lesen. Der Prozess umfasst jedoch das erneute Klonen Ihres Haupt-Repositorys, das Filtern des Commit-Verlaufs, sodass nur das Modulverzeichnis enthalten ist, und das anschließende Verschieben des Submoduls in ein neues Repository.
< p>Sobald Sie das Submodul hinzugefügt haben, müssen Sie die Änderungen in das übergeordnete Repository übernehmen. Dadurch wird die Konfiguration für alle anderen aktualisiert, die das übergeordnete Repository abrufen.
git commit -m “Submodul submodule_directory hinzugefügt”
Git-Submodule aktualisieren
Wenn jemand anderes das Submodul aktualisiert hat oder Sie Aktualisierungen vom Submodul abrufen müssen& Im Repository müssen Sie git submodule update verwenden:
git submodule update –remote
Wenn Sie jedoch selbst Änderungen vornehmen müssen, wird es etwas schwieriger. Änderungen am Code in Git-Submodulen erfordern im Vergleich zum Aktualisieren von Code in einem regulären Git-Repository etwas mehr Sorgfalt. Im Allgemeinen haben Sie zwei Möglichkeiten:
- Nehmen Sie die Änderungen in einem separaten Repository für das Submodul vor , und übernehmen und aktualisieren Sie sie wie gewohnt. Sie müssen „git submodule update“ im übergeordneten Repository ausführen, um die neuen Änderungen abzurufen.
- Nehmen Sie die Änderungen im übergeordneten Repository vor. Da es sich bei einem Submodul im Grunde um ein eingebettetes Git-Repository handelt, können Sie mit cd in das Submodulverzeichnis wechseln und Git-Befehle wie gewohnt ausführen. Dies ist einer der Hauptvorteile von Submodulen, da Sie separate Repos verwalten und gleichzeitig an beiden arbeiten können.
Wenn Sie Änderungen im übergeordneten Repository vornehmen, müssen Sie #8217;Sie müssen in das Submodul wechseln und aktualisieren:
cd submodule_dir git commit -am “submodule commit” git push
Gehen Sie dann zurück zum übergeordneten Repo und übertragen Sie die Aktualisierungen des Submoduls an die übergeordnetes Repository:
cd .. git commit -am “updated submodule” git push
Sie sollten Änderungen sowohl im Github-Repository des Submoduls als auch im übergeordneten Repository sehen.
WEITER LESEN
- › Mac Trackpad funktioniert nicht? 10 Tipps und Tricks zum Ausprobieren
- › VMware bringt 3D-beschleunigtes Windows 11 auf Apple Silicon Macs
- › So schalten Sie Anrufe von unbekannten Nummern auf WhatsApp stumm
- › Austauschbare Smartphone-Akkus könnten ein Comeback erleben
- › Ist es sicher, günstige/kostenlose Windows 10-Schlüssel von Drittanbietern zu kaufen?
- › So verwenden und passen Sie die virtuelle Tastatur auf Ihrem Steam-Deck an