Estrai i sottomoduli git dopo la clonazione del progetto da GitHub


100

Ho un progetto che contiene dei sottomoduli specificati. Tutto funziona bene sulla macchina di sviluppo. Ho .gitmodulesdepositato il file e ho ritirato la produzione. Tuttavia non tira i sottomoduli.

Se entro nelle directory dei sottomoduli e chiamo git pull, non succede nulla.

Qual è il modo corretto per estrarre quei sottomoduli nel nuovo progetto?

Risposte:


155

Dalla radice del repository basta eseguire:

git submodule update --init

9
Credo che questo aggiornerà effettivamente le tue dipendenze. Penso che S. Russel avesse il comando giusto nel suo commento qui sotto:git pull --recurse-submodules
Spencer

39

Se hai bisogno di estrarre materiale per i sottomoduli nei tuoi repository di sottomoduli usa

git pull --recurse-submodules

Ma questo non controllerà i commit appropriati (quelli a cui punta il tuo repository principale) nei sottomoduli

Per eseguire il checkout dei commit corretti nei tuoi sottomoduli, dovresti aggiornarli dopo aver estratto usando

git submodule update --recursive

1
git submodule update --recursiveè ciò di cui avevo bisogno dopo la prima volta, git clonema dimenticandomi al --recursiveprimo tentativo. Grazie!
mbb

10
Questo non sembra funzionare per me. I sottomoduli rimangono vuoti.
CodeMonkey

@CodeMonkey lo stesso per me.
linkerx

6
potrebbe essere troppo tardi per la festa ma per chiunque sia finito qui: git submodule update --init --recursiverisolvi il mio problema
Iglesk

26

Se sono presenti sottomoduli annidati, sarà necessario utilizzare:

git submodule update --init --recursive
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.