Schnelle Lösung:
Bei dieser Art von Fehler beginne ich normalerweise damit, die postBuffer
Größe zu erhöhen um:
git config --global http.postBuffer 524288000
(Einige Kommentare unten berichten, dass der Wert verdoppelt werden muss):
git config --global http.postBuffer 1048576000
Mehr Informationen:
Auf der git config
Manpage geht http.postBuffer
es um:
Maximale Größe des Puffers in Byte des Puffers, der von intelligenten HTTP-Transporten beim POSTEN von Daten an das Remote-System verwendet wird.
Bei Anforderungen, die größer als diese Puffergröße sind, wird HTTP / 1.1 Transfer-Encoding: chunked
verwendet, um zu vermeiden, dass lokal eine massive Packdatei erstellt wird. Die Standardeinstellung ist 1 MiB, was für die meisten Anfragen ausreicht.
Selbst für den Klon kann dies Auswirkungen haben, und in diesem Fall berichtet der OP Joe :
[Klon] funktioniert jetzt einwandfrei
Hinweis: Wenn auf der Serverseite ein Fehler aufgetreten ist und der Server Git 2.5+ (Q2 2015) verwendet, ist die Fehlermeldung möglicherweise expliziter.
Siehe " Git-Klonen: Remote-Ende hat unerwartet aufgelegt, versucht zu ändern, schlägt postBuffer
aber immer noch fehl ".
Kulai ( in den Kommentaren ) weist auf diese Atlassian Troubleshooting Git-Seite hin , die Folgendes hinzufügt:
Error code 56
Zeigt an, dass eine Locke empfangen wurde, deren Fehler CURLE_RECV_ERROR
bedeutet, dass ein Problem aufgetreten ist, das den Empfang der Daten während des Klonvorgangs verhindert hat.
Dies wird normalerweise durch eine Netzwerkeinstellung, eine Firewall, einen VPN-Client oder ein Antivirenprogramm verursacht, die die Verbindung beenden, bevor alle Daten übertragen wurden.
Außerdem wird die folgende Umgebungsvariable erwähnt, um den Debugging-Prozess zu unterstützen.
# 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
Mit Git 2.25.1 (Februar 2020) wissen Sie mehr über diese http.postBuffer
"Lösung".
Siehe Commit 7a2dc95 , Commit 1b13e90 (22. Januar 2020) von Brian M. Carlson ( bk2204
) .
(Zusammengeführt von Junio C Hamano - gitster
- in Commit 53a8329 , 30. Januar 2020)
( Diskussion der Git-Mailingliste )
docs
: Erwähnen Sie, wenn das Erhöhen von http.postBuffer wertvoll ist
Unterzeichnet von: brian m. Carlson
Benutzer in einer Vielzahl von Situationen haben Probleme mit HTTP-Pushs.
Oft sind diese Probleme auf Antivirensoftware, das Filtern von Proxys oder andere Man-in-the-Middle-Situationen zurückzuführen. In anderen Fällen sind sie auf eine einfache Unzuverlässigkeit des Netzwerks zurückzuführen.
Eine häufige Lösung für online gefundene HTTP-Push-Probleme ist jedoch die Erhöhung von http.postBuffer.
Dies funktioniert in keiner der oben genannten Situationen und ist nur in einer kleinen, stark eingeschränkten Anzahl von Fällen nützlich: im Wesentlichen, wenn die Verbindung HTTP / 1.1 nicht ordnungsgemäß unterstützt.
Dokumentieren Sie, wann die Erhöhung dieses Werts angemessen ist und was er tatsächlich bewirkt, und halten Sie die Benutzer davon ab, ihn als allgemeine Lösung für Push-Probleme zu verwenden, da er dort nicht wirksam ist.
Die Dokumentation für den git config http.postBuffer
Moment enthält also:
http.postBuffer
Maximale Größe des Puffers in Byte des Puffers, der von intelligenten HTTP-Transporten beim POSTEN von Daten an das Remote-System verwendet wird.
Bei Anforderungen, die größer als diese Puffergröße sind, werden HTTP / 1.1 und Transfer-Encoding: Chunked verwendet, um zu vermeiden, dass lokal eine massive Pack-Datei erstellt wird.
Die Standardeinstellung ist 1 MiB, was für die meisten Anfragen ausreicht.
Beachten Sie, dass das Erhöhen dieses Grenzwerts nur zum Deaktivieren der Chunked-Transfer-Codierung wirksam ist und daher nur verwendet werden sollte, wenn der Remote-Server oder ein Proxy nur HTTP / 1.0 unterstützt oder nicht mit dem HTTP-Standard übereinstimmt.
Dies zu erhöhen ist im Allgemeinen keine effektive Lösung für die meisten Push-Probleme, kann jedoch den Speicherverbrauch erheblich erhöhen, da der gesamte Puffer auch für kleine Pushs zugewiesen wird .