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?

Antworten:


142

Von der Wurzel des Repos laufen Sie einfach:

git submodule update --init

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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.