Leeren Sie den Git-Submodulordner, wenn das Repo geklont wird

130

Ich habe ein Repo unter https://github.com/aikiframework/json gehostet . Auf meiner lokalen Kopie habe ich mit dem Befehl ein Submodul hinzugefügt

git submodule add [email protected]:jcubic/json-rpc.git json-rpc

Dann habe ich ein Commit und Push durchgeführt und die Änderungen werden auf GitHub angezeigt (ich kann darauf klicken). Aber wenn ich das Repo klone

git clone https://github.com/aikiframework/json.git

Der Submodulordner json-rpc ist leer.

Was vermisse ich hier? Habe ich etwas vergessen Warum ist dieser Ordner leer?

jcubic
quelle

Antworten:

199

OK, ich habe es gefunden, musste --recursivebeim Klonen des Repos hinzugefügt werden .

Der Klonbefehl lautet also wie folgt:

git clone https://github.com/aikiframework/json.git --recursive
jcubic
quelle
229
Ja. Sie können Submodule auch nachträglich mit abrufen git submodule update --init, wenn Sie bereits geklont, aber vergessen haben --recursive.
Amber
4
Ich war gerade mit dem Problem konfrontiert, dass es ein Submodul für den Entwicklungszweig gibt, aber noch nicht für den Hauptzweig. Wenn Sie das Git-Repo mit --recursive klonen, wird das Submodul im Master-Zweig nicht gefunden, und Sie müssen es mit dem Ambers-Kommentar "git submodule update --init" abrufen, um auch das Submodul zu erhalten.
d4Rk
11
Wenn Sie verwenden git submodule update --initmüssen Sie auf jeden Repo gehen und tun , git checkout mastersonst werden Sie Fehlermeldung erhalten , You are not currently on a branch.auf , git pullwenn Sie versuchen , es auf eine neuere Version zu aktualisieren.
Noitidart
@ Noitidart gibt es einen Weg, der das nicht macht? (nachdem das Projekt bereits
geklont wurde
1
@ Noitidart Danke für den update --initHinweis. Das hilft, wenn der ursprüngliche Klon nicht enthalten war --recursiveund einfach die fehlenden Submodule ziehen wollte.
Jari Turkia