Cartella del sottomodulo Git vuota quando il repository viene clonato


130

Ho un repository ospitato su https://github.com/aikiframework/json . Sulla mia copia locale, ho aggiunto un sottomodulo usando il comando

git submodule add git@github.com:jcubic/json-rpc.git json-rpc

Quindi ho eseguito il commit e il push e le modifiche vengono visualizzate su GitHub (posso fare clic su di esso). Ma quando clonerò il repository

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

la cartella del sottomodulo json-rpc è vuota.

Cosa mi sto perdendo qui? Ho dimenticato qualcosa? Perché quella cartella è vuota?

Risposte:


200

OK l'ho trovato, è necessario aggiungerlo --recursivedurante la clonazione del repository.

Quindi il comando clone finisce come:

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

229
Sì. Puoi anche recuperare i sottomoduli dopo il fatto con git submodule update --init, se hai già clonato ma hai dimenticato --recursive.
Ambra

4
Ho appena affrontato il problema che esiste un sottomodulo sul ramo di sviluppo, ma non ancora sul ramo principale. Quando clonate il repository git usando --recursive non troverà il sottomodulo sul ramo master e dovrete recuperarlo usando il commento di Ambers "git submodule update --init" per ottenere anche il sotto-modulo.
d4Rk,

11
Se si utilizza git submodule update --initsi dovrà andare ad ogni pronti contro termine e fare git checkout masteraltrimenti si otterrà l'errore You are not currently on a branch.su git pullquando si tenta di aggiornarlo ad una versione più recente.
Noitidart,

@Noitidart c'è un modo che non lo fa? (dopo aver già clonato il progetto)
borgr

1
@Noitidart Grazie per il update --initsuggerimento. Questo aiuta quando il clone originale non --recursiveera presente e voleva semplicemente estrarre i sottomoduli mancanti.
Jari Turkia,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.