Solusi cepat:
Dengan kesalahan semacam ini, saya biasanya memulai dengan menaikkan postBufferukuran dengan:
git config --global http.postBuffer 524288000
(beberapa komentar di bawah melaporkan harus menggandakan nilai):
git config --global http.postBuffer 1048576000
Informasi lebih lanjut:
Dari git confighalaman manual , http.postBufferadalah tentang:
Ukuran maksimum dalam byte buffer yang digunakan oleh HTTP pintar mengangkut saat POSTing data ke sistem jarak jauh.
Untuk permintaan yang lebih besar dari ukuran buffer ini, HTTP / 1.1 dan Transfer-Encoding: chunkeddigunakan untuk menghindari pembuatan file paket besar secara lokal. Default adalah 1 MiB, yang cukup untuk sebagian besar permintaan.
Bahkan untuk klon, itu dapat memiliki efek, dan dalam hal ini, OP Joe melaporkan:
[klon] berfungsi dengan baik sekarang
Catatan: jika ada masalah di sisi server, dan jika server menggunakan Git 2.5+ (Q2 2015), pesan kesalahan mungkin lebih eksplisit.
Lihat " Kloning Git: ujung jarak jauh menutup secara tak terduga, mencoba mengubah postBuffertetapi masih gagal ".
Kulai ( dalam komentar ) menunjukkan halaman Git Pemecahan Masalah Atlassian ini , yang menambahkan:
Error code 56menunjukkan curl menerima kesalahan CURLE_RECV_ERRORyang berarti ada beberapa masalah yang mencegah data diterima selama proses kloning.
Biasanya ini disebabkan oleh pengaturan jaringan, firewall, klien VPN, atau anti-virus yang memutuskan koneksi sebelum semua data ditransfer.
Ini juga menyebutkan variabel lingkungan berikut, untuk membantu proses debugging.
# 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
Dengan Git 2.25.1 (Februari 2020), Anda tahu lebih banyak tentang http.postBuffer"solusi" ini.
Lihat komit 7a2dc95 , komit 1b13e90 (22 Jan 2020) oleh brian m. carlson ( bk2204) .
(Digabung oleh Junio C Hamano - gitster- dalam komit 53a8329 , 30 Jan 2020)
( Diskusi Milis Git )
docs: sebutkan ketika meningkatkan http.postBuffer berharga
Ditandatangani oleh: brian m. carlson
Pengguna dalam berbagai situasi menemukan diri mereka dengan masalah push HTTP.
Seringkali masalah ini disebabkan oleh perangkat lunak antivirus, penyaringan proxy, atau situasi manusia-di-tengah lainnya; di lain waktu, mereka disebabkan oleh jaringan yang tidak dapat diandalkan.
Namun, solusi umum untuk masalah push HTTP yang ditemukan online adalah dengan meningkatkan http.postBuffer.
Ini tidak bekerja untuk situasi yang disebutkan di atas dan hanya berguna dalam sejumlah kecil, sangat terbatas kasus: pada dasarnya, ketika koneksi tidak mendukung HTTP / 1.1 dengan benar.
Dokumentasikan ketika menaikkan nilai ini sesuai dan apa yang sebenarnya dilakukannya, dan jangan gunakan orang sebagai solusi umum untuk masalah push, karena tidak efektif di sana.
Jadi dokumentasi untuk git config http.postBuffersaat ini meliputi:
http.postBuffer
Ukuran maksimum dalam byte buffer yang digunakan oleh HTTP pintar mengangkut saat POSTing data ke sistem jarak jauh.
Untuk permintaan yang lebih besar dari ukuran buffer ini, HTTP / 1.1 dan Transfer-Encoding: chunked digunakan untuk menghindari pembuatan file paket besar secara lokal.
Default adalah 1 MiB, yang cukup untuk sebagian besar permintaan.
Perhatikan bahwa menaikkan batas ini hanya efektif untuk menonaktifkan pengkodean transfer chunked dan oleh karena itu harus digunakan hanya jika server jarak jauh atau proxy hanya mendukung HTTP / 1.0 atau tidak sesuai dengan standar HTTP.
Meningkatkan ini bukan, secara umum, solusi efektif untuk sebagian besar masalah dorong, tetapi dapat meningkatkan konsumsi memori secara signifikan karena seluruh buffer dialokasikan bahkan untuk dorongan kecil .