Puxe submódulos git após clonar o projeto do GitHub

100

Eu tenho um projeto que especificou submódulos nele. Tudo funciona bem na máquina de desenvolvimento. Eu enviei o .gitmodulesarquivo e retirei a produção. No entanto, ele não puxa submódulos.

Se eu entrar em diretórios de submódulos e ligar git pull, nada acontece.

Qual é a maneira adequada de puxar esses submódulos no novo projeto?

hsz
fonte

Respostas:

155

Na raiz do repo, basta executar:

git submodule update --init
Matt Cooper
fonte
9
Acredito que isso realmente atualizará suas dependências. Acho que S. Russel tinha o comando certo em seu comentário abaixo:git pull --recurse-submodules
Spencer
39

Se você precisa puxar coisas para submódulos em seus repositórios de submódulos, use

git pull --recurse-submodules

Mas isso não fará o checkout dos commits adequados (aqueles para os quais seu repositório mestre aponta) em submódulos

Para verificar os commits adequados em seus submódulos, você deve atualizá-los após puxar usando

git submodule update --recursive
S. Rasel
fonte
1
git submodule update --recursiveé o que eu precisava depois de começar, git clonemas esqueci de fazê-lo --recursivena primeira tentativa. Obrigado!
mbb
10
Isso não parece funcionar para mim. Os submódulos permanecem vazios.
CodeMonkey
@CodeMonkey o mesmo para mim.
linkerx
6
pode ser tarde demais para a festa, mas para qualquer um acabou aqui: git submodule update --init --recursiveresolva meu problema
Iglesk
26

Se houver submódulos aninhados, você precisará usar:

git submodule update --init --recursive
Iglesk
fonte