자식 푸시 실패 : 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

내가 봤과 같은 질문 발견 이 하나이 일을 하지만,이 질문에 대한 답변 중 누구도 내 문제를 해결할 수 없습니다.

대부분의 답변은 분리 된 헤드 의 문제를 시사합니다 . 그러나 나는 내 머리가 분리되어 있다고 생각하지 않습니다. 또한 내가 잘못된 지점에 있다고 생각하지 않습니다 (하나의 지점 만 있기 때문에 ...)

나는 무엇이 잘못되었는지 알아 내기 위해 몇 가지 실험을했으며, 내가 얻은 결과는 다음과 같습니다.

(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수단 당신은 :-), 원격 지사에 아무것도 범죄를 로컬 변경을 밀어 수
Maksym Polshcha에게

답변:


292

HTTP 또는 HTTPS를 사용하여 많은 변경 사항을 Git 저장소에 푸시하려고하면 error :와 같은 오류 메시지가 표시 될 수 있습니다 RPC failed; result=22, HTTP code = 411. 이는 특정 HTTP 작업을 1MB로 제한하는 Git 구성 기본값으로 인해 발생합니다.

이 제한을 변경하려면 로컬 저장소 내에서 실행하십시오.

git config http.postBuffer *bytes*

여기서 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
여전히 다음과 같은 오류 git이 발생합니다. RPC failed; 결과 = 22, HTTP 코드 = (504)을 안드로이드 스튜디오에서의 bitbucket에
DJtiwari

23

전 세계적으로이 작업을 수행 할 수도 있습니다.

git config --global http.postBuffer 524288000

그러면 모든 로컬 리포지토리가 최대 500MB의 데이터를 푸시 할 수 있습니다.


3

제공된 솔루션 중 어느 것도 우리에게 효과가 없었습니다. 솔루션 ssh대신이 작업을 수행 하도록 전환해야 했습니다 HTTPS.


2

Windows 용 TortoiseGit을 사용하는 경우 가장 쉬운 방법은 통합 구성을 사용하는 것입니다.

파일 탐색기에서 마우스 왼쪽 버튼을 누르고 TortoiseGit-> 설정을 선택하십시오 . 정보 메시지를 수락하십시오. 이제 현재 프로젝트 또는 시스템 whide에 대해서만 속성을 구성 할 것인지 선택할 수 있습니다. 시스템 전체 구성의 경우 "edit systemwide gitconfig"를 누르고 다음 행을 섹션에 추가하십시오 [http].

postBuffer = 524288000

(섹션 [http]이 존재하지 않으면 생성하십시오)


1

22 오류를 다음과 같이 해결했습니다. "git clone"명령에서 user : password를 제공하지 않았습니다. 클론은 작동했지만 푸시는 작동하지 않았습니다. 22 오류에 대한 해결책 : .git / config를 다음과 같이 URL을 수정하십시오. url = http : // user : pwd @ host / ... 그런 다음 푸시가 작동했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.