Soluzione rapida:
Con questo tipo di errore, di solito inizio sollevando il postBuffer
dimensione di:
git config --global http.postBuffer 524288000
(alcuni commenti qui sotto riportano la necessità di raddoppiare il valore):
git config --global http.postBuffer 1048576000
Maggiori informazioni:
Dalla git config
pagina man ,http.postBuffer
parla di:
Dimensione massima in byte del buffer utilizzata dai trasporti HTTP intelligenti durante il POST di dati sul sistema remoto.
Per richieste superiori a questa dimensione del buffer, HTTP / 1.1 eTransfer-Encoding: chunked
viene utilizzato per evitare di creare localmente un file pack di grandi dimensioni. L'impostazione predefinita è 1 MiB, che è sufficiente per la maggior parte delle richieste.
Anche per il clone, ciò può avere un effetto, e in questo caso, OP Joe riporta:
[clone] ora funziona bene
Nota: se qualcosa è andato storto sul lato server e se il server utilizza Git 2.5+ (Q2 2015), il messaggio di errore potrebbe essere più esplicito.
Vedi " Clonazione Git: l'estremità remota ha riattaccato inaspettatamente, ha provato a cambiare postBuffer
ma continua a fallire ".
Kulai ( nei commenti ) sottolinea questa pagina Git di risoluzione dei problemi di Atlassian , che aggiunge:
Error code 56
indica che un ricciolo riceve l'errore, il CURLE_RECV_ERROR
che significa che c'era qualche problema che impediva la ricezione dei dati durante il processo di clonazione.
In genere, ciò è causato da un'impostazione di rete, firewall, client VPN o antivirus che interrompe la connessione prima che tutti i dati siano stati trasferiti.
Menziona anche la seguente variabile d'ambiente, per aiutare con il processo di debug.
# 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
Con Git 2.25.1 (febbraio 2020), ne sai di più http.postBuffer
"soluzione".
Vedi commit 7a2dc95 , commit 1b13e90 (22 gennaio 2020) di brian m. Carlson ( bk2204
) .
(Unito da Junio C Hamano - gitster
- in commit 53a8329 , 30 gennaio 2020)
( Discussione su Git Mailing list )
docs
: menzionare quando aumentare http.postBuffer è prezioso
Firmato-fuori-da: brian m. Carlson
Gli utenti in un'ampia varietà di situazioni si trovano con problemi di push HTTP.
Spesso questi problemi sono dovuti a software antivirus, proxy di filtro o altre situazioni man-in-the-middle; altre volte, sono dovuti alla semplice inaffidabilità della rete.
Tuttavia, una soluzione comune ai problemi di push HTTP rilevati online è quella di aumentare http.postBuffer.
Questo non funziona per nessuna delle situazioni di cui sopra ed è utile solo in un numero limitato di casi: in sostanza, quando la connessione non supporta correttamente HTTP / 1.1.
Documentare quando aumentare questo valore è appropriato e ciò che effettivamente fa e scoraggiare le persone dall'usarlo come soluzione generale per problemi di spinta, dal momento che non è efficace lì.
Quindi la documentazione per git config http.postBuffer
ora include:
http.postBuffer
Dimensione massima in byte del buffer utilizzata dai trasporti HTTP intelligenti durante il POST di dati sul sistema remoto.
Per richieste di dimensioni superiori a questa dimensione del buffer, HTTP / 1.1 e Transfer-Encoding: chunked viene utilizzato per evitare la creazione di un file pack imponente localmente.
L'impostazione predefinita è 1 MiB, che è sufficiente per la maggior parte delle richieste.
Si noti che l'innalzamento di questo limite è efficace solo per disabilitare la codifica di trasferimento in blocchi e pertanto deve essere utilizzato solo dove il server remoto o un proxy supporta solo HTTP / 1.0 o non è conforme allo standard HTTP.
Sollevare questo non è, in generale, una soluzione efficace per la maggior parte dei problemi di push, ma può aumentare significativamente il consumo di memoria poiché l'intero buffer è allocato anche per piccoli push .