Einführung
🧑💻 Neuer zu Git oder LabEx? Wir empfehlen, mit dem Kurs Quick Start with Git zu beginnen.
In Git sind Submodule Repositories innerhalb von Repositories. Sie ermöglichen es Ihnen, andere Repositories als Abhängigkeiten in Ihrem Projekt zu integrieren. Wenn Sie ein Git-Repository klonen, das Submodule enthält, werden die Submodule nicht automatisch kloniert. Dies kann Probleme bei der Erstellung oder Ausführung des Projekts verursachen. In diesem Lab werden Sie lernen, wie Sie fehlende Submodule klonen und Commits auschecken.
Fehlende Submodule klonen
Sie arbeiten an einem Projekt, das Submodule enthält. Wenn Sie das Projekt klonen, werden die Submodule nicht automatisch kloniert. Dies verursacht Probleme, wenn Sie versuchen, das Projekt zu erstellen oder auszuführen. Sie müssen die fehlenden Submodule klonen und die richtigen Commits auschecken.
Für dieses Lab verwenden wir das Git-Repository mit der URL https://github.com/git/git. Dieses Repository enthält Submodule, die nicht automatisch kloniert werden, wenn Sie das Repository klonen.
Führen Sie die folgenden Schritte aus, um die fehlenden Submodule zu klonen und die richtigen Commits auszuchecken:
- Wechseln Sie in das Repository-Verzeichnis:
cd git - Initialisieren Sie die Submodule:
git submodule update --init --recursive - Wechseln Sie zum richtigen Commit der Submodule, d.h. zur
master-Branch:
Hier ist das Endresultat:git submodule foreach git checkout master
Submodule'sha1collisiondetection' (https://github.com/cr-marcstevens/sha1collisiondetection.git) registered for path'sha1collisiondetection'
Cloning into '/home/labex/project/git/sha1collisiondetection'...
Submodule path'sha1collisiondetection': checked out '855827c583bc30645ba427885caa40c5b81764d2'
Zusammenfassung
Das Klonen fehlender Submodule und das Auschecken von Commits ist ein wichtiger Schritt, wenn Sie mit Git-Repositories arbeiten, die Submodule enthalten. Indem Sie die in diesem Lab beschriebenen Schritte befolgen, können Sie sicherstellen, dass Ihr Projekt korrekt gebaut und ausgeführt wird.