Szybkie rozwiązanie:
Z tego rodzaju błędem zwykle zaczynam od zwiększenia postBufferrozmiaru o:
git config --global http.postBuffer 524288000
(niektóre komentarze poniżej wskazują na konieczność podwojenia wartości):
git config --global http.postBuffer 1048576000
Więcej informacji:
Od git configstrony człowieka , http.postBufferjest o:
Maksymalny rozmiar w bajtach bufora używanego przez inteligentny transport HTTP podczas wysyłania danych do zdalnego systemu.
W przypadku żądań większych niż ten rozmiar bufora Transfer-Encoding: chunkedużywany jest protokół HTTP / 1.1, aby uniknąć lokalnego tworzenia ogromnego pakietu. Domyślnie jest to 1 MiB, co wystarcza w przypadku większości żądań.
Nawet w przypadku klonu może to mieć wpływ, aw tym przypadku OP Joe informuje:
[klon] działa teraz dobrze
Uwaga: jeśli coś poszło nie tak po stronie serwera i jeśli serwer korzysta z Git 2.5+ (Q2 2015), komunikat o błędzie może być bardziej wyraźny.
Zobacz „ Klonowanie Git: zdalny koniec zawiesił się nieoczekiwanie, próbował zmienić, postBufferale nadal nie działa ”.
Kulai ( w komentarzach ) wskazuje na tę stronę Git rozwiązywania problemów Atlassian , która dodaje:
Error code 56wskazuje na zwijanie się, którego błąd CURLE_RECV_ERRORoznacza, że wystąpił jakiś problem, który uniemożliwił otrzymanie danych podczas procesu klonowania.
Zazwyczaj jest to spowodowane ustawieniem sieciowym, zaporą ogniową, klientem VPN lub programem antywirusowym, który przerywa połączenie przed przesłaniem wszystkich danych.
Wspomina także o następującej zmiennej środowiskowej, aby pomóc w procesie debugowania.
# 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
Dzięki Git 2.25.1 (luty 2020) wiesz więcej o tym http.postBuffer„rozwiązaniu”.
Zobacz zatwierdzenie 7a2dc95 , zatwierdzenie 1b13e90 (22 stycznia 2020 r.) Autor: brian m. carlson ( bk2204) .
(Scalony przez Junio C Hamano - gitster- w commit 53a8329 , 30 stycznia 2020)
( Dyskusja na liście mailowej Git )
docs: wspomnij o zwiększeniu wartości http.postBuffer
Podpisano: brian m. Carlson
Użytkownicy w wielu różnych sytuacjach mają problemy z wypychaniem HTTP.
Często problemy te wynikają z oprogramowania antywirusowego, filtrujących serwerów proxy lub innych sytuacji man-in-the-middle; innym razem są one spowodowane zwykłą zawodnością sieci.
Jednak powszechnym rozwiązaniem problemów z wypychaniem HTTP znalezionych w Internecie jest zwiększenie http.postBuffer.
Działa to w żadnej z wyżej wymienionych sytuacji i jest użyteczne tylko w niewielkiej, bardzo ograniczonej liczbie przypadków: w zasadzie, gdy połączenie nie obsługuje poprawnie protokołu HTTP / 1.1.
Dokumentuj, gdy podniesienie tej wartości jest właściwe i co faktycznie robi, i zniechęcaj ludzi do używania jej jako ogólnego rozwiązania problemów z wypychaniem, ponieważ tam nie jest ona skuteczna.
Dokumentacja na git config http.postBufferrazie obejmuje:
http.postBuffer
Maksymalny rozmiar w bajtach bufora używanego przez inteligentny transport HTTP podczas wysyłania danych do zdalnego systemu.
W przypadku żądań większych niż ten rozmiar bufora stosuje się HTTP / 1.1 i Transfer-Encoding: chunked, aby uniknąć lokalnego tworzenia ogromnego pliku paczki.
Domyślnie jest to 1 MiB, co wystarcza na większość żądań.
Należy zauważyć, że zwiększenie tego limitu jest skuteczne tylko w przypadku wyłączenia kodowania przesyłania fragmentarycznego i dlatego powinno się go stosować tylko wtedy, gdy zdalny serwer lub serwer proxy obsługuje tylko HTTP / 1.0 lub jest niezgodny ze standardem HTTP.
Podniesienie tego nie jest na ogół skutecznym rozwiązaniem dla większości problemów z wypychaniem, ale może znacznie zwiększyć zużycie pamięci, ponieważ cały bufor jest przydzielany nawet dla małych wypychań .