Pesquisei no Google e encontrei muitas soluções, mas nenhuma funciona para mim.
Estou tentando clonar de uma máquina conectando ao servidor remoto que está na rede LAN.
A execução deste comando a partir de outra máquina causa erro.
Mas, executando o comando SAME clone usando git: //192.168.8.5 ... no servidor, tudo bem e bem-sucedido.
Alguma ideia ?
user@USER ~
$ git clone -v git://192.168.8.5/butterfly025.git
Cloning into 'butterfly025'...
remote: Counting objects: 4846, done.
remote: Compressing objects: 100% (3256/3256), done.
fatal: read error: Invalid argument, 255.05 MiB | 1.35 MiB/s
fatal: early EOF
fatal: index-pack failed
Eu adicionei esta configuração, .gitconfig
mas não ajuda também.
Usando a versão git 1.8.5.2.msysgit.0
[core]
compression = -1
Respostas:
Primeiro, desative a compactação:
Em seguida, vamos fazer um clone parcial para truncar a quantidade de informações que aparece:
Quando isso funcionar, entre no novo diretório e recupere o restante do clone:
ou, alternativamente,
Agora, faça um puxão regular:
Eu acho que existe uma falha no msysgit nas versões 1.8.x que exacerba esses sintomas, então outra opção é tentar com uma versão anterior do git (<= 1.8.3, eu acho).
fonte
git clone --depth 1 git@host:user/my_project.git
.git pull --all
não funciona. Por causa degit clone --depth 1
definir o intervalo de busca apenas um ramo. Então, precisamos editar o .git / config primeiro.Este erro pode ocorrer para necessidades de memória do git. Você pode adicionar essas linhas ao seu arquivo de configuração global do git, que está
.gitconfig
dentro$USER_HOME
, a fim de corrigir esse problema.fonte
remote: Enumerating objects: 43, done. remote: Counting objects: 100% (43/43), done. remote: Compressing objects: 100% (24/24), done. error: inflate returned -55/26) fatal: unpack-objects failed
finalmente resolvido por
git config --global core.compression 9
Em um thread de problema do BitBucket:
Na documentação do Git:
fonte
git repack
em combinação com esta solução e funcionou.--compression 0
não funcionou nem todas as.gitconfig
alterações sugeridas acima.Como @ingyhere disse:
Clone raso
Primeiro, desative a compactação:
Em seguida, vamos fazer um clone parcial para truncar a quantidade de informações que aparece:
Quando isso funcionar, entre no novo diretório e recupere o restante do clone:
ou, alternativamente,
Agora, faça um puxão:
Em seguida, para resolver o problema de sua filial local, apenas o mestre de rastreamento
abra seu arquivo de configuração git (
.git/config
) no editor de sua escolhaonde diz:
mude a linha
para
Faça uma busca no git e o git puxará todos os seus ramos remotos agora
fonte
No meu caso, isso foi bastante útil:
Isso limitará o checkout apenas à ramificação mencionada e, portanto, acelerará o processo.
Espero que isso ajude.
fonte
Eu tentei todos esses comandos e nenhum funciona para mim, mas o que funciona foi alterar o git_url para http em vez de ssh
Se o comando clone for:
caso contrário, se você estiver utilizando um repositório existente, faça-o com
espero que isso ajude alguém!
fonte
https
e defina o controle remoto novamente parassh
.Eu recebi esse erro quando o git ficou sem memória.
Libertar um pouco de memória (neste caso: deixar um trabalho de compilação terminar) e tentar novamente funcionou para mim.
fonte
No meu caso, foi um problema de conexão. Eu estava conectado a uma rede wifi interna, na qual tinha acesso limitado a recursos. Isso estava deixando o git fazer a busca, mas em um determinado momento ele caiu. Isso significa que pode ser um problema de conexão de rede. Verifique se tudo está funcionando corretamente: antivírus, firewall, etc.
A resposta do elin3t é, portanto, importante porque o ssh melhora o desempenho do download, para que problemas de rede possam ser evitados
fonte
Definir a configuração abaixo não funciona para mim.
Como comentário anterior, pode haver problemas com a memória do git. Assim, tento reduzir os threads de trabalho (de 32 para 8). Para que não obtenha muitos dados do servidor ao mesmo tempo. Também adiciono "-f" para forçar a sincronização de outros projetos.
Então funciona bem agora.
fonte
Uma resposta anterior recomenda definir para 512m. Eu diria que há razões para pensar que é contraproducente em uma arquitetura de 64 bits. A documentação para core.packedGitLimit diz:
Se você quiser experimentar, verifique se está configurado e remova a configuração:
fonte
Observe que o Git 2.13.x / 2.14 (terceiro trimestre de 2017) aumenta o padrão
core.packedGitLimit
que influenciagit fetch
:O valor limite do pacote embalado foi aumentado em plataformas maiores ( de 8 GiB para 32 GiB ) para salvar "
git fetch
" de uma falha (recuperável) enquanto "gc
" estiver sendo executado em paralelo.Veja commit be4ca29 (20 de abril de 2017) por David Turner (
csusbdt
) .Ajudado por: Jeff King (
peff
) .(Mesclado por Junio C Hamano -
gitster
- na confirmação d97141b , 16 de maio de 2017)fonte
Usando a resposta @cmpickle, criei um script para simplificar o processo de clone.
Está hospedado aqui: https://gist.github.com/gianlucaparadise/10286e0b1c5409bd1049d67640fb7c03
Você pode executá-lo usando a seguinte linha:
fonte
No meu caso, o problema não era nenhum dos parâmetros de configuração do git, mas o fato de o meu repositório ter um arquivo excedendo o tamanho máximo permitido no meu sistema. Eu pude verificar tentando baixar um arquivo grande e obter um "Limite de tamanho de arquivo excedido" no Debian.
Depois disso, editei meu arquivo /etc/security/limits.conf adicionando e no final as seguintes linhas: * hard fsize 1000000 * soft fsize 1000000
Para realmente "aplicar" os novos valores-limite, você precisa fazer login novamente
fonte
Relacionado tangencialmente e útil apenas no caso de você não ter acesso root e extrair manualmente o Git de um RPM (com rpm2cpio) ou outro pacote (.deb, ..) em uma subpasta. Caso de uso típico: você tenta usar uma versão mais recente do Git sobre a desatualizada em um servidor corporativo.
Se o clone do git falhar
fatal: index-pack failed
sem menção antecipada ao EOF, mas uma mensagem de ajuda sobreusage: git index-pack
, haverá uma incompatibilidade de versão e você precisará executar o git com o--exec-path
parâmetro:Para que isso ocorra automaticamente, especifique em
~/.bashrc
:fonte
Eu tinha os mesmos logs de erro, usando git (v2.17.1) sobre ssh. No meu caso, a solução é:
git gc
.Consulte a documentação do git-gc: https://git-scm.com/docs/git-gc .
Por exemplo:
Agora eu posso clonar este repositório sem erros, por exemplo, no lado do cliente:
O comando
git gc
pode ajudar chamado no lado do cliente git para evitargit push
problemas semelhantes .Outra solução (hack) está baixando o último mestre sem histórico:
Há uma chance de que o buffer overflow não ocorra.
fonte
No meu caso, nada funcionou quando o protocolo era https, então mudei para ssh e assegurei que obtive o repositório do último commit e não do histórico inteiro, e também do ramo específico. Isso me ajudou:
clone git - profundidade 1 "ssh: .git" --branch “specific_branch”
fonte
Enquanto isso, desliguei todos os downloads que estava fazendo, o que provavelmente liberou espaço e reduziu a largura de banda.
fonte
O problema do git-daemon parece ter sido resolvido na v2.17.0 (verificado com uma v2.16.2.1 que não está funcionando). Ou seja, a solução alternativa para selecionar texto no console para "bloquear o buffer de saída" não deve mais ser necessária.
Em https://github.com/git/git/blob/v2.17.0/Documentation/RelNotes/2.17.0.txt :
fonte
Eu tenho o mesmo problema. Após o primeiro passo acima, eu consegui clonar, mas não posso fazer mais nada. Não é possível buscar, puxar ou retirar galhos antigos.
Cada comando corre muito mais devagar que o normal e depois morre após compactar os objetos.
Isso também acontece quando seus árbitros estão usando muita memória. Podar a memória corrigiu isso para mim. Basta adicionar um limite ao que você procura assim ->
Isso buscará os arquivos, mas com as últimas 100 edições em seus históricos. Depois disso, você pode executar qualquer comando com precisão e velocidade normal.
fonte
Tentei a maioria das respostas aqui, recebi o erro com o PUTTY SSH Client com todas as constelações possíveis.
Depois que mudei para o OpenSSH, o erro desapareceu (remova a variável de ambiente GIT_SSH e reinicie o git bash).
Eu estava usando uma nova máquina e as versões mais recentes do git. Em muitas outras máquinas / antigas (também na AWS), funcionou como esperado com o PUTTY, sem nenhuma configuração do git.
fonte
Eu experimentei o mesmo problema. O REPO era muito grande para ser baixado via SSH. Assim como @ elin3t recomendado, eu clonei por HTTP / HTTPS e alterei a URL REMOTE em .git / config para usar o SSH REPO.
fonte
Eu tenho o mesmo problema abaixo quando corro
git pull
Em seguida, verifiquei
git status
: Havia tantas alterações não confirmadas que eu corrigi o problema, confirmando e enviando todas as alterações não confirmadas.fonte
Nenhuma das soluções acima funcionou para mim.
A solução que finalmente funcionou para mim foi trocar o cliente SSH. A variável de ambiente GIT_SSH foi definida como o OpenSSH fornecido pelo Windows Server 2019. Versão 7.7.2.1
C:\Windows\System32\OpenSSH\ssh.exe
Eu simplesmente instalei a massa, 0,72
choco install putty
E alterou GIT_SSH para
C:\ProgramData\chocolatey\lib\putty.portable\tools\PLINK.EXE
fonte
Tentei praticamente todas as sugestões feitas aqui, mas nenhuma funcionou. Para nós, a questão era temperamental e se tornava cada vez pior quanto maiores os repositórios (no nosso Jenkins Windows build slave).
Acabou sendo a versão do ssh usada pelo git. O Git foi configurado para usar alguma versão do Open SSH, especificada no arquivo .gitconfig dos usuários por meio da variável core.sshCommand. A remoção dessa linha a corrigiu. Acredito que isso ocorre porque o Windows agora é fornecido com uma versão mais confiável / compatível do SSH, que é usada por padrão.
fonte
Isso funcionou para mim, configurando o servidor de nomes do Google porque nenhum servidor de nomes padrão foi especificado, seguido pelo reinício da rede:
fonte
De um clone do git, eu estava obtendo:
Depois de reiniciar minha máquina, consegui clonar o repositório com precisão.
fonte
Se você estiver no Windows, convém verificar se o git clone falha com "index-pack" falhou? .
Basicamente, após executar seu
git.exe daemon ...
comando, selecione algum texto nessa janela do console. Tente puxar / clonar novamente, ele pode funcionar agora!Veja esta resposta para mais informações.
fonte
Verifique se a sua unidade tem espaço suficiente
fonte
Nada disso funcionou para mim, mas o uso da ferramenta incorporada do Heroku funcionou.
Documentação aqui: https://devcenter.heroku.com/articles/git-clone-heroku-app
fonte