Ziehen Sie Git-Submodule nach dem Klonen des Projekts von GitHub

90

Ich habe ein Projekt, in dem Submodule angegeben sind. Auf der Entwicklungsmaschine funktioniert alles gut. Ich habe .gitmodulesDatei festgeschrieben und die Produktion eingestellt. Es werden jedoch keine Submodule gezogen.

Wenn ich in Submodulverzeichnisse gehe und aufrufe git pull, passiert nichts.

Was ist der richtige Weg, um diese Submodule im neuen Projekt zu ziehen?

hsz
quelle

Antworten:

142

Von der Wurzel des Repos laufen Sie einfach:

git submodule update --init
Matt Cooper
quelle
8
Ich glaube, dies wird Ihre Abhängigkeiten tatsächlich aktualisieren. Ich denke, S. Russel hatte das richtige Kommando in seinem Kommentar unten:git pull --recurse-submodules
Spencer
37

Wenn Sie Inhalte für Submodule in Ihre Submodul-Repositorys ziehen müssen, verwenden Sie

git pull --recurse-submodules

Dadurch werden jedoch keine ordnungsgemäßen Commits (auf die Ihr Master-Repository verweist) in Submodulen überprüft

Um die richtigen Commits in Ihren Submodulen zu überprüfen, sollten Sie sie nach dem Ziehen mit aktualisieren

git submodule update --recursive
S. Rasel
quelle
1
git submodule update --recursiveist das, was ich nach dem ersten Mal brauchte, git cloneaber --recursivebeim ersten Mal vergessen habe . Vielen Dank!
mbb
8
Das scheint bei mir nicht zu funktionieren. Die Submodule bleiben leer.
CodeMonkey
@ CodeMonkey gleich für mich.
Linkerx
6
Vielleicht ist es zu spät für die Party, aber für jeden, der hier git submodule update --init --recursive
gelandet
21

Wenn verschachtelte Submodule vorhanden sind, müssen Sie Folgendes verwenden:

git submodule update --init --recursive
Iglesk
quelle