Solução rápida:
Com esse tipo de erro, geralmente começo aumentando o postBuffertamanho:
git config --global http.postBuffer 524288000
(alguns comentários abaixo relatam ter que dobrar o valor):
git config --global http.postBuffer 1048576000
Mais Informações:
Na git configpágina do manual , http.postBuffertrata-se de:
Tamanho máximo em bytes do buffer usado pelos transportes HTTP inteligentes ao POSTAR dados para o sistema remoto.
Para solicitações maiores que esse tamanho de buffer, HTTP / 1.1 e Transfer-Encoding: chunkedé usado para evitar a criação local de um grande pacote de arquivos. O padrão é 1 MiB, o que é suficiente para a maioria das solicitações.
Mesmo para o clone, isso pode ter um efeito e, neste caso, o OP Joe informa:
[clone] funciona bem agora
Nota: se algo der errado no lado do servidor e se o servidor usar o Git 2.5+ (Q2 2015), a mensagem de erro poderá ser mais explícita.
Consulte " Clonagem do Git: a extremidade remota desligou inesperadamente, tentou alterar postBuffermas ainda falhou ".
Kulai ( nos comentários ) aponta para esta página Atlitian Troubleshooting Git , que adiciona:
Error code 56indica que uma onda recebe o erro, o CURLE_RECV_ERRORque significa que houve algum problema que impedia que os dados fossem recebidos durante o processo de clonagem.
Normalmente, isso é causado por uma configuração de rede, firewall, cliente VPN ou antivírus que está encerrando a conexão antes que todos os dados tenham sido transferidos.
Ele também menciona a seguinte variável de ambiente, para ajudar no processo de depuração.
# Linux
export GIT_TRACE_PACKET=1
export GIT_TRACE=1
export GIT_CURL_VERBOSE=1
#Windows
set GIT_TRACE_PACKET=1
set GIT_TRACE=1
set GIT_CURL_VERBOSE=1
Com o Git 2.25.1 (fevereiro de 2020), você sabe mais sobre essa http.postBuffer"solução".
Consulte commit 7a2dc95 , commit 1b13e90 (22 jan 2020) por brian m. Carlson ( bk2204) .
(Mesclado por Junio C Hamano - gitster- no commit 53a8329 , 30 de janeiro de 2020)
( discussão na lista de discussão do Git )
docs: mencione quando o aumento do http.postBuffer é valioso
Assinado por: brian m. Carlson
Usuários em uma ampla variedade de situações se deparam com problemas de envio de HTTP.
Muitas vezes, esses problemas são causados por software antivírus, proxies de filtragem ou outras situações intermediárias; outras vezes, devido à simples falta de confiabilidade da rede.
No entanto, uma solução comum para os problemas de envio HTTP encontrados online é aumentar o http.postBuffer.
Isso funciona para nenhuma das situações mencionadas acima e é útil apenas em um número pequeno e altamente restrito de casos: essencialmente, quando a conexão não suporta HTTP / 1.1 corretamente.
Documente quando elevar esse valor é apropriado e o que ele realmente faz, e desencoraje as pessoas a usá-lo como uma solução geral para problemas de envio, pois não é eficaz lá.
Portanto, a documentação do git config http.postBuffermomento inclui:
http.postBuffer
Tamanho máximo em bytes do buffer usado pelos transportes HTTP inteligentes ao POSTAR dados para o sistema remoto.
Para solicitações maiores que esse tamanho de buffer, HTTP / 1.1 e Transfer-Encoding: chunked são usados para evitar a criação local de um grande pacote de arquivos.
O padrão é 1 MiB, o que é suficiente para a maioria das solicitações.
Observe que aumentar esse limite é eficaz apenas para desativar a codificação de transferência em blocos e, portanto, deve ser usado apenas quando o servidor remoto ou um proxy suportar apenas HTTP / 1.0 ou não for compatível com o padrão HTTP.
Aumentar isso não é, em geral, uma solução eficaz para a maioria dos problemas de push, mas pode aumentar significativamente o consumo de memória, pois todo o buffer é alocado mesmo para pequenos pushs .