git push ล้มเหลว: RPC ล้มเหลว; ผลลัพธ์ = 22, รหัส HTTP = 411


127

มีสาขาเดียวค่ะ ฉันใช้มาสองสามเดือนแล้ว

git push origin master

เพื่อยอมรับที่เก็บในเครื่องของฉัน เมื่อคืนหลังจากที่ฉันทำการเปลี่ยนแปลงเล็กน้อยกับที่เก็บในเครื่องของฉันและพยายามดันโดยใช้คำสั่งเดียวกันฉันได้รับข้อผิดพลาดนี้:

error: RPC failed; result=22, HTTP code = 411
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date

ฉัน googled และพบคำถามเช่นนี้และคนนี้แต่ไม่มีคำตอบสำหรับคำถามเหล่านี้จะช่วยแก้ปัญหาของฉัน

ส่วนใหญ่ของคำตอบที่ชี้ให้เห็นปัญหาของหัวเดี่ยว แต่ฉันไม่คิดว่าหัวของฉันจะหลุดออกไป ฉันไม่คิดว่าฉันอยู่ผิดสาขา (เพราะฉันมีเพียงสาขาเดียว ... )

ฉันได้ทำการทดลองสองสามครั้งเพื่อหาว่ามีอะไรผิดปกติและนี่คือผลลัพธ์ที่ฉันได้รับ:

(1) git statusผลลัพธ์ของฉันมาก่อน

# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
# egal.aux
# egal.blg
# egal.out
# egal.pdf
# egalcar.aux
# egalcar.blg
# egalcar.pdf
nothing added to commit but untracked files present (use "git add" to track)

(2) เมื่อฉันพิมพ์git reflogฉันสามารถเห็นคอมมิตในเครื่องทั้งหมดของฉัน แต่ที่เก็บระยะไกลจะไม่ได้รับการอัปเดต

(3) เมื่อฉันพิมพ์git branch -aฉันจะได้รับ

* master
  remotes/origin/master

(4) เมื่อฉันพิมพ์git remote show originฉันจะได้รับ

* remote origin
  Fetch URL: http://github.com/CherryQu921/egaldoc_en
  Push  URL: http://github.com/CherryQu921/egaldoc_en
  HEAD branch: master
  Remote branch:
    master tracked
  Local ref configured for 'git push':
    master pushes to master (fast-forwardable)

ฉันคิดว่าบรรทัดสุดท้ายของเอาต์พุต ("fast-forwardable") แปลก แต่ฉันไม่แน่ใจว่ามีอะไรผิดปกติ ...


fast-forwardableหมายความว่าคุณสามารถผลักดันการเปลี่ยนแปลงในพื้นที่ของคุณไปยังสาขาระยะไกลได้โดยไม่มีอะไรผิดทางอาญา :-)
Maksym Polshcha

คำตอบ:


292

ถ้าคุณพยายามที่จะผลักดันชุดใหญ่ของการเปลี่ยนแปลงไปเป็นที่เก็บ Git กับ HTTP หรือ HTTPS RPC failed; result=22, HTTP code = 411คุณอาจได้รับข้อความแสดงข้อผิดพลาดเช่นข้อผิดพลาด: สิ่งนี้เกิดจากค่าเริ่มต้นการกำหนดค่า Git ซึ่ง จำกัด การดำเนินการ HTTP บางอย่างไว้ที่ 1 เมกะไบต์

หากต้องการเปลี่ยนขีด จำกัด นี้ให้รันภายในที่เก็บในเครื่องของคุณ

git config http.postBuffer *bytes*

โดยที่ไบต์คือจำนวนไบต์สูงสุดที่อนุญาต ตัวอย่างเช่น:

git config http.postBuffer 524288000

สำหรับ 500MB (ขอบคุณ @Hengjie)


52
ตัวอย่างคือgit config http.postBuffer 524288000500MB
Hengjie

9
หากคุณใช้ gitlab คุณอาจต้องเปลี่ยนการกำหนดค่า nginx ของคุณด้วย ( /etc/nginx/sites-available/gitlab) ข้อมูลเพิ่มเติม: github.com/gitlabhq/gitlabhq/issues/3099
DanielB

จะเกิดอะไรขึ้นถ้ามันแสดง RPC failed; result=22, HTTP code = 502?
Dipesh Raichana

2
ฉันยังคงได้รับข้อผิดพลาดดังต่อไปนี้: RPC ล้มเหลว; ผลลัพธ์ = 22, รหัส HTTP = 504 ใน bitbucket บน android studio
DJtiwari

23

คุณสามารถทำสิ่งนี้ได้ทั่วโลก -

git config --global http.postBuffer 524288000

ซึ่งจะช่วยให้ repos ในเครื่องทั้งหมดสามารถพุชข้อมูลได้สูงสุด 500MB


3

ไม่มีโซลูชันใดที่ให้บริการสำหรับเรา เราต้องเปลี่ยนไปใช้sshเพื่อให้ทำงานนี้แทนการHTTPSแก้ปัญหา


2

หากคุณใช้ TortoiseGit สำหรับ Windows วิธีที่ง่ายที่สุดคือการใช้การกำหนดค่าแบบรวม

ใน File Explorer กดปุ่มเมาส์ซ้ายเลือกTortoiseGit -> การตั้งค่า ยอมรับข้อความข้อมูล ตอนนี้คุณสามารถเลือกได้ว่าคุณต้องการกำหนดค่าคุณสมบัติสำหรับโปรเจ็กต์หรือระบบปัจจุบันเท่านั้น สำหรับการกำหนดค่าทั้งระบบกด "แก้ไข gitconfig ทั้งระบบ" และเพิ่มบรรทัดถัดไปในส่วน[http]:

postBuffer = 524288000

( [http]ไม่มีส่วนนี้ให้สร้าง)


1

ฉันแก้ไขข้อผิดพลาด 22 ข้อดังนี้ในคำสั่ง "git clone" ฉันไม่ได้ระบุผู้ใช้: รหัสผ่าน โคลนใช้งานได้ แต่ไม่ใช่การผลักดัน วิธีแก้ไขข้อผิดพลาด 22: แก้ไข. git / config url ดังนี้ url = http: // user: pwd @ host / ... จากนั้นการพุชก็ใช้งานได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.