ESTÁ BEM. Então eu pensei que tinha lambido ... mas agora ....
Tenho um projeto que inclui uma pequena biblioteca do GitHub como um submódulo. Na versão original desse superprojeto, o submódulo está funcionando conforme o esperado.
Porém, acabei de clonar o superprojeto, fiz o que achei que deveria: "git submodule init", fiz aparecer o diretório do submódulo, mas está vazio.
Se eu agora tentar fazer
git submodule update
eu recebo
fatal: Needed a single revision
Unable to find current revision in submodule path 'external_libraries/BEACHhtml'
Se eu tentar
git submodule foreach git pull
eu recebo
Entering 'external_libraries/BEACHhtml'
fatal: Where do you want to fetch from today?
Stopping at 'external_libraries/BEACHhtml'; script returned non-zero status.
No meu .git / config, tenho o seguinte:
[submodule "external_libraries/BEACHhtml"]
url = [email protected]:interstar/BEACHhtml.git
Em meus módulos .git, tenho o seguinte:
[submodule "external_libraries/BEACHhtml"]
path = external_libraries/BEACHhtml
url = [email protected]:interstar/BEACHhtml.git
Alguém tem uma ideia do que está faltando?
fonte
ext/blah
) e a pasta correspondente abaixo deGIT_DIR
(.git/modules/ext/blah
).git submodule update
continuava falhando no meu servidor CI porque ele queria que alguém aceitasse as chaves RSA (o servidor ci normalmente usa a conexão https e esta foi a primeira vez que um submódulo puxou uma conexão ssh). Espero que poupe uma hora de coçar a cabeça de alguém!Eu tive esse problema (rede instável, então eu perdi a verificação de submódulo assim) e resolvi fazendo este script (nomeou
git-submodule-fix
para que eu pudesse executá-lo comogit submodule-fix
)Se você conseguir isso, por exemplo, de um
git submodule update
Faz
fonte
Resolvido ao excluir 2 diretórios e buscar novamente o submódulo:
external_libraries/BEACHhtml
e verifique o.git
arquivo. Seu conteúdo deve ser algo comogitdir: ../../.git/modules/external_libraries/BEACHhtml
external_libraries/BEACHhtml
e.git/modules/external_libraries/BEACHhtml
.A partir de agora
git submodule update
funciona sem erros.fonte
git submodule init
antesgit submodule update
para que o submódulo seja reinicializado, então isso funcionará.Se você estiver lendo em 2019 ou mais tarde, basta atualizar o cliente git. Funcionou para mim.
fonte
use uma ferramenta diff para comparar o clone original que está funcionando e este. Além disso, o que
git submodule
resulta. Certifique-se de estar apontando para o mesmo branch em cada repo antes de fazer isso.Estou suspeitando que você mudou para um branch ou uma revisão mais antiga onde o submódulo não foi definido.
espero que isto ajude
fonte
Eu tive o mesmo problema com um submódulo em um projeto. Quando tentei clonar o submódulo separadamente, funcionou bem.
Tentei todas as respostas acima, mas sem sucesso (atualização do submódulo git, ..., removendo as pastas do submódulo, ...).
O problema desapareceu após a atualização do git (de Git-1.7.11-preview20120710) para a versão mais recente (para Git-1.8.1.2-preview20130201) na época. Estranhamente meus colegas tinham uma versão ainda mais antiga, funcionavam sem problemas, mas estavam no Mac. Estou no Win7 de 64 bits.
fonte