Estou tentando fazer um checkout no github e recebi esta mensagem de erro:
[user@arch ~]$ git clone --recursive https://github.com/simsong/tcpflow.git
Cloning into 'tcpflow'...
The authenticity of host 'github.com (192.30.253.113)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.253.113' (RSA) to the list of known hosts.
remote: Counting objects: 4190, done.
remote: Compressing objects: 100% (32/32), done.
remote: Total 4190 (delta 21), reused 29 (delta 12), pack-reused 4146
Receiving objects: 100% (4190/4190), 50.27 MiB | 2.21 MiB/s, done.
Resolving deltas: 100% (2954/2954), done.
Submodule 'src/be13_api' (https://github.com/simsong/be13_api.git) registered for path 'src/be13_api'
Submodule 'src/dfxml' (https://github.com/simsong/dfxml.git) registered for path 'src/dfxml'
Submodule 'src/http-parser' (https://github.com/nodejs/http-parser.git) registered for path 'src/http-parser'
Cloning into '/home/user/tcpflow/src/be13_api'...
remote: Counting objects: 1203, done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 1203 (delta 2), reused 5 (delta 1), pack-reused 1194
Receiving objects: 100% (1203/1203), 477.47 KiB | 1.96 MiB/s, done.
Resolving deltas: 100% (821/821), done.
Cloning into '/home/user/tcpflow/src/dfxml'...
remote: Counting objects: 1929, done.
remote: Total 1929 (delta 0), reused 0 (delta 0), pack-reused 1929
Receiving objects: 100% (1929/1929), 572.09 KiB | 2.89 MiB/s, done.
Resolving deltas: 100% (1294/1294), done.
Cloning into '/home/user/tcpflow/src/http-parser'...
remote: Counting objects: 1487, done.
remote: Total 1487 (delta 0), reused 0 (delta 0), pack-reused 1487
Receiving objects: 100% (1487/1487), 667.24 KiB | 2.46 MiB/s, done.
Resolving deltas: 100% (916/916), done.
Submodule path 'src/be13_api': checked out 'c81521d768bb78499c069fcd7c47adc8eee0350c'
Submodule path 'src/dfxml': checked out 'c31224626cf5f6678d42cbcfbfcd4e6191c9a864'
error: Server does not allow request for unadvertised object 5bbcdc5df9d01b521e8da011bab0da70bdec3653
Fetched in submodule path 'src/http-parser', but it did not contain 5bbcdc5df9d01b521e8da011bab0da70bdec3653. Direct fetching of that commit failed.
[user@arch ~]$
Então, eu sou o mantenedor desses repositórios. O src / http-parser é uma bifurcação de outro repositório, e os mantenedores desse repositório não aceitaram consistentemente minhas solicitações de recebimento (sem nenhum motivo) para adicionar alguns arquivos gerados automaticamente ao .gitignore
arquivo. Mas acho que não é esse o problema aqui.
Submodule path 'src/http-parser': checked out '6b05cce82da5c4d407e5576ab892bc20a17b0394'
Respostas:
jgit - O que são as referências anunciadas pelo git? - Estouro de pilha :
Portanto, se você deseja obter uma confirmação específica
--depth
, ela deve estar no máximo<depth>-1
confirmada da referência buscada (que é a ramificação / tag especificada nos metadados do submódulo)Normalmente, as pessoas aconselham definir apenas
depth
um número razoavelmente grande, mas ainda muito menor que o número total de confirmações no repositório50
ou no repositório100
. Por exemplo,50
é o que Travis usa ao fazer o clone inicial do projeto.Se você não estiver atualizando o submódulo com
--depth
, não encontrar o commit significa:--depth
ou a sua entrada em.gitmodules
temshallow = true
)Para o registro, no seu caso específico, foi o último caso: o commit
5bbcdc5df9d01b521e8da011bab0da70bdec3653
não está nohttps://github.com/simsong/http-parser.git
repositório.fonte
depth
?--depth
.Uma maneira de obter acesso a um objeto não convertido é sincronizar. Em seguida, uma atualização do submódulo deve funcionar, como:
fonte
git submodule update
falhou em outro submódulo, mas quando apliquei essas duas linhas em todos os meus submódulos na ordem correta , finalmente funcionou.$ git submodule sync --recursive; git submodule update
OU, se for logo após a clonagem de um controle remoto, apenas$ git submodule update --init --recursive
. Isso atravessará efetivamente a árvore de arquivos do projeto de/project/root/
baixo para cima, de acordo com o que está dentro/project/root/.gitmodules
. Muito mais em$ git submodule --help
...--recursive
bandeira.