git đẩy thất bại: RPC thất bại; kết quả = 22, mã HTTP = 411


127

Tôi chỉ có một chi nhánh. Trong một vài tháng, tôi đã sử dụng

git push origin master

để cam kết với kho lưu trữ cục bộ của tôi. Đêm qua sau khi tôi thực hiện một số thay đổi nhỏ đối với kho lưu trữ cục bộ của mình và cố gắng sử dụng cùng một lệnh, tôi đã gặp lỗi này:

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

Tôi googled và thấy những câu hỏi như nàycái này , nhưng không ai trong số các câu trả lời cho những câu hỏi giải quyết vấn đề của tôi.

Hầu hết các câu trả lời cho thấy vấn đề tách rời đầu . Tuy nhiên, tôi không nghĩ rằng đầu của tôi bị tách ra. Tôi cũng không nghĩ mình ở sai nhánh (vì tôi chỉ có một nhánh ...)

Tôi đã làm một vài thí nghiệm để tìm ra điều gì sai và đây là kết quả tôi nhận được:

(1) Đầu tiên là git statusđầu ra của tôi

# 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) Khi tôi nhập git reflog, tôi có thể thấy tất cả các cam kết cục bộ của mình, nhưng kho lưu trữ từ xa sẽ không được cập nhật.

(3) Khi tôi gõ git branch -a, tôi nhận được

* master
  remotes/origin/master

(4) Khi tôi gõ git remote show origin, tôi nhận được

* 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)

Tôi nghĩ rằng dòng đầu ra cuối cùng ("chuyển tiếp nhanh") là lạ, nhưng tôi không chắc có gì sai ...


fast-forwardablecó nghĩa là bạn có thể đẩy các thay đổi cục bộ của mình đến chi nhánh từ xa, không có tội phạm gì :-)
Maksym Polshcha

Câu trả lời:


292

Nếu bạn cố gắng đẩy một tập hợp lớn các thay đổi vào kho lưu trữ Git bằng HTTP hoặc HTTPS, bạn có thể nhận được thông báo lỗi, chẳng hạn như lỗi : RPC failed; result=22, HTTP code = 411. Điều này xảy ra do mặc định cấu hình Git giới hạn các hoạt động HTTP nhất định ở mức 1 megabyte.

Để thay đổi giới hạn này, hãy chạy trong kho lưu trữ cục bộ của bạn

git config http.postBuffer *bytes*

trong đó byte là số byte tối đa được phép. Ví dụ:

git config http.postBuffer 524288000

Đối với 500MB (cảm ơn @Hengjie)


52
Một ví dụ là git config http.postBuffer 524288000500MB.
Hengjie

9
Nếu bạn đang sử dụng gitlab, bạn cũng có thể cần phải thay đổi cấu hình nginx của mình ( /etc/nginx/sites-available/gitlab). Thông tin thêm: github.com/gitlabhq/gitlabhq/issues/3099
DanielB

Nếu nó hiển thị RPC failed; result=22, HTTP code = 502thì sao?
Dipesh Raichana

2
Tôi vẫn nhận được lỗi git sau: RPC thất bại; result = 22, mã HTTP = 504 trong bitbucket trên studio android
DJtiwari

23

Bạn cũng có thể làm điều này trên toàn cầu -

git config --global http.postBuffer 524288000

Điều đó sẽ cho phép tất cả các repos cục bộ đẩy tối đa 500MB dữ liệu.


3

Không có giải pháp nào được cung cấp làm việc cho chúng tôi. Chúng tôi đã phải chuyển sang sshđể làm cho công việc này thay vì HTTPSgiải pháp.


2

Nếu bạn đang sử dụng TortoiseGit cho Windows, cách dễ nhất là sử dụng cấu hình tích hợp.

Trong trình duyệt tệp, nhấn nút chuột trái, chọn TortoiseGit -> Cài đặt . Chấp nhận tin nhắn thông tin. Bây giờ, bạn có thể chọn nếu bạn muốn định cấu hình thuộc tính chỉ cho dự án hoặc hệ thống hiện tại. Để cấu hình toàn hệ thống, nhấn "chỉnh sửa gitconfig toàn hệ thống" và thêm dòng tiếp theo vào phần [http]:

postBuffer = 524288000

(đó là phần [http]không tồn tại, tạo ra nó)


1

Tôi đã giải quyết 22 lỗi như sau: Trong lệnh "git clone" tôi KHÔNG cung cấp cho người dùng: mật khẩu. Bản sao làm việc, nhưng không đẩy. Giải pháp cho lỗi 22: Sửa đổi .git / config url như thế này: url = http: // user: pwd @ host / ... Sau đó, quá trình đẩy hoạt động.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.