วิธีแก้ปัญหาอย่างรวดเร็ว:
ด้วยข้อผิดพลาดแบบนี้ฉันมักจะเริ่มต้นด้วยการเพิ่มpostBufferขนาดโดย:
git config --global http.postBuffer 524288000
(ความคิดเห็นบางส่วนด้านล่างรายงานต้องเพิ่มค่าเป็นสองเท่า):
git config --global http.postBuffer 1048576000
ข้อมูลมากกว่านี้:
จากgit configหน้าคน , http.postBufferเป็นเรื่องเกี่ยวกับ:
ขนาดสูงสุดในหน่วยไบต์ของบัฟเฟอร์ที่ใช้โดยการส่ง HTTP อัจฉริยะเมื่อ POSTing ข้อมูลไปยังระบบระยะไกล
สำหรับคำร้องขอที่ใหญ่กว่าขนาดบัฟเฟอร์นี้ HTTP / 1.1 และTransfer-Encoding: chunkedใช้เพื่อหลีกเลี่ยงการสร้างไฟล์แพ็คขนาดใหญ่ในเครื่อง ค่าเริ่มต้นคือ 1 MiB ซึ่งเพียงพอสำหรับคำขอส่วนใหญ่
แม้แต่โคลนที่สามารถมีผลกระทบและในกรณีนี้OP Joeรายงาน:
[clone] ใช้งานได้ดีในขณะนี้
หมายเหตุ: หากมีบางอย่างผิดปกติที่ฝั่งเซิร์ฟเวอร์และหากเซิร์ฟเวอร์ใช้ Git 2.5+ (Q2 2558) ข้อความแสดงข้อผิดพลาดอาจชัดเจนกว่านี้
ดูที่ "การโคลน Git: สิ้นสุดระยะไกลวางสายโดยไม่คาดคิดลองเปลี่ยนpostBufferแต่ยังล้มเหลว "
Kulai ( ในความคิดเห็น ) ชี้ไปที่หน้า Git การแก้ไขปัญหา Atlassianซึ่งเพิ่ม:
Error code 56ระบุว่า curl ได้รับข้อผิดพลาดCURLE_RECV_ERRORซึ่งหมายความว่ามีปัญหาบางอย่างที่ทำให้ไม่สามารถรับข้อมูลในระหว่างกระบวนการโคลนได้
โดยทั่วไปเกิดจากการตั้งค่าเครือข่ายไฟร์วอลล์ไคลเอนต์ VPN หรือโปรแกรมป้องกันไวรัสที่ยกเลิกการเชื่อมต่อก่อนที่ข้อมูลทั้งหมดจะถูกถ่ายโอน
นอกจากนี้ยังกล่าวถึงตัวแปรสภาพแวดล้อมต่อไปนี้เพื่อช่วยในกระบวนการดีบัก
# 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
ด้วย Git 2.25.1 (ก.พ. 2020) คุณรู้เพิ่มเติมเกี่ยวกับhttp.postBuffer"การแก้ปัญหา" นี้
ดูคอมมิชชัน 7a2dc95 , ยอมรับ 1b13e90 (22 ม.ค. 2020) โดยbrian m คาร์ลสัน (bk2204 )
(ผสานโดยJunio C Hamano - gitster- in 53a8329 , 30 Jan 2020)
( การสนทนารายชื่อผู้รับจดหมาย Git )
docs: พูดถึงเมื่อเพิ่ม http.postBuffer มีค่า
ลงชื่อออกโดย: brian m คาร์ลสัน
ผู้ใช้ในสถานการณ์ที่หลากหลายพบว่าตนเองมีปัญหาการพุช HTTP
บ่อยครั้งที่ปัญหาเหล่านี้เกิดจากซอฟต์แวร์ป้องกันไวรัส, การกรองพร็อกซีหรือสถานการณ์อื่น ๆ บางครั้งพวกเขาเกิดจากเครือข่ายที่ไม่สามารถไว้ใจได้ง่าย
อย่างไรก็ตามวิธีแก้ไขปัญหาทั่วไปสำหรับการพุช HTTP ที่พบทางออนไลน์คือการเพิ่ม http.postBuffer
สิ่งนี้ใช้ได้กับสถานการณ์ใด ๆ ที่กล่าวมาแล้วและมีประโยชน์ในกรณีที่มีขนาดเล็กและถูก จำกัด อย่างมาก: เป็นหลักเมื่อการเชื่อมต่อไม่รองรับ HTTP / 1.1 อย่างถูกต้อง
เอกสารเมื่อเพิ่มค่านี้เหมาะสมและสิ่งที่มันทำจริงและกีดกันผู้คนจากการใช้มันเป็นวิธีแก้ไขปัญหาทั่วไปสำหรับปัญหาการผลักเนื่องจากมันไม่มีประสิทธิภาพ
ดังนั้นเอกสารสำหรับgit config http.postBufferตอนนี้รวมถึง:
http.postBuffer
ขนาดสูงสุดในหน่วยไบต์ของบัฟเฟอร์ที่ใช้โดยการส่ง HTTP อัจฉริยะเมื่อ POSTing ข้อมูลไปยังระบบระยะไกล
สำหรับคำร้องขอที่ใหญ่กว่าขนาดบัฟเฟอร์นี้ HTTP / 1.1 และการเข้ารหัสการถ่ายโอน: chunked ถูกใช้เพื่อหลีกเลี่ยงการสร้างไฟล์แพ็คขนาดใหญ่ในเครื่อง
ค่าเริ่มต้นคือ 1 MiB ซึ่งเพียงพอสำหรับคำขอส่วนใหญ่
โปรดทราบว่าการเพิ่มขีด จำกัด นี้จะมีผลบังคับใช้สำหรับการปิดใช้งานการเข้ารหัสการถ่ายโอนแบบ chunked เท่านั้นดังนั้นควรใช้เฉพาะเมื่อเซิร์ฟเวอร์ระยะไกลหรือพร็อกซีสนับสนุน HTTP / 1.0 เท่านั้นหรือไม่สอดคล้องกับมาตรฐาน HTTP
Raising นี้ไม่ได้โดยทั่วไปโซลูชั่นที่มีประสิทธิภาพสำหรับปัญหาการผลักดันมากที่สุด แต่สามารถเพิ่มการใช้หน่วยความจำอย่างมีนัยสำคัญตั้งแต่บัฟเฟอร์ทั้งหมดจะถูกจัดสรรแม้สำหรับดันขนาดเล็ก