code

Github Push Error: RPC 실패, 결과=22, HTTP 코드=

starcafe 2023. 10. 20. 13:54
반응형

Github Push Error: RPC 실패, 결과=22, HTTP 코드=

지금 Github이 진행중인 바보같은 문제.상당한 양의 변경사항(최대 120MB 크기)이 있으며, 푸시를 시도하면 다음과 같은 일이 발생합니다.

error: RPC failed; result=22, HTTP code = 413
fatal: The remote end hung up unexpectedly 
fatal: The remote end hung up unexpectedly

이미 다 했습니다.

git config http.postBuffer 524288000, 그래서 그게 문제가 되지 않는 것 같습니다.무슨 일이지?

오류 413이 발생하면 문제는 git이 아닌 웹 서버에 있습니다.대용량 업로드 파일을 차단하는 것은 당신의 웹 서버입니다.

nginx용 솔루션

로드만 하면 됩니다.nginx.conf덧붙이기client_max_body_size 50m;(필요에 따라 값을 변경합니다) http 블록에 있습니다.

를 실행하여 새 구성을 수락하도록 ginx를 다시 로드합니다.sudo service nginx reload다시 한번 http를 넘겨보세요.

Apache용 솔루션

당신의httpd.conf더하다LimitRequestBody 52428800 (필요에 따라 값을 변경하는 것) A 내부의<Directory />block. 이렇게 하면 전체 서버 파일 시스템의 요청을 제한할 수 있고, 단일 가상 호스트나 디렉토리만 제한할 수 있습니다.

알아냈어요!!!물론 저는 우편물을 보낸 후에 바로 할 것입니다.

HTTPS url을 사용하도록 repo를 설정하고 SSH 주소로 변경하여 모든 작업이 완벽하게 재개되었습니다.

원격 URL을 변경하는 명령(https -> git@...))는 이런 것입니다.

git remote set-url origin git@github.com:GitUserName/GitRepoName.git

origin은 내 리모콘의 이름입니다. (doit remote를 실행하고 나오는 것이 당신의 origin입니다.)

저도 같은 문제가 있었는데 역방향 프록시를 사용하고 있었습니다.

그래서 제가 세팅을.

client_max_body_size 50m; 

두 구성 파일 내부:

  • gitlab nginx 웹 서버에서 (이전 답변에서 말한 것처럼)
  • 또한 전용 서버에서 호스팅되는 nginx reverse proxy에도 있습니다.

큰 크기로 변경하는 중에 이 문제가 발생하는 경우 터미널에서 아래 명령을 실행합니다.

git config --global http.postBuffer 157286400

자세한 내용은 이 항목을 참조하십시오.

git URL에 "HTTPs//"가 이미 들어있었는데 이 오류가 발생했습니다.

제가 한 일은 푸시와 함께 option-u를 추가하는 것이었고 효과가 있었습니다.

git push -u origin master

IIS 7을 사용하여 깃을 호스팅하는 사용자용http/https끝점:

당신은 당신의 것을 늘려야 합니다.uploadReadAheadSize.

IIS(Internet Information Services) Manager 시작

  1. [서버] 필드 확장

  2. 사이트 펼치기

  3. 수정할 사이트를 선택합니다.

  4. Features(특징) 섹션에서 두 번 클릭합니다.Configuration Editor

  5. Section택:system.webServer > serverRuntime

  6. 수정합니다.uploadReadAheadSize섹션(값은 다음과 같은 값 사이여야 합니다.0그리고.2147483647.)

  7. 클릭

  8. 웹 사이트 다시 시작

ssh 링크 대신 https 링크를 사용합니까?https 링크는 HttpServer 업로드 크기(예: Apache, Ngnix)에 따라 제한되므로 ssh를 사용할 때는 이러한 제한이 없습니다.

ssh 링크로 전환하려면 다음 방법을 사용합니다.

  1. 터미널 열림.
  2. 프로젝트의 작업 디렉토리로 전환합니다.
  3. 원격 저장소 이름 가져오기
$ git remote -v
origin  https://github.com/[user_name]/[project_name].git (fetch)
origin  https://github.com/[user_name]/[project_name].git (push)
  1. git 주소를 ssh 링크로 수정합니다.
git remote set-url origin git@github.com:[user_name]/[project_name].git

원격 저장소 이름을 결정한 경우 4단계로 직접 진행합니다.이제 푸쉬 조작을 즐겁게 할 수 있습니다.

이 오류는 https 업로드의 기본 프로토콜인 'libcurl'에서 발생합니다.해결책은 어떻게든 libcurl을 업그레이드하는 것입니다.오류에 대한 자세한 내용은 GIT_CURL_VERBOSE=1로 설정하시면 됩니다.

https://confluence.atlassian.com/pages/viewpage.action?pageId=306348908

libcurl 문서에 따른 오류의 의미: CURLE_HTTP_RETURNED_ERROR (22)

CURLOPT_FAILONERROR가 TRUE로 설정되어 있고 HTTP 서버가 >= 400인 오류 코드를 반환하면 이 코드가 반환됩니다.

http://curl.haxx.se/libcurl/c/libcurl-errors.html

리눅스 머신에서 깃레포를 복제하려고 할 때 이 문제가 발생했습니다.

다음 URL은 윈도우에서 나를 위해 작동합니다.

http://swamy@git.swamy.com/scm/project/swamy-main.git

반면에 다음 URL은 Linux machine에서 작동하며 URL에 https가 있습니다.

https://swamy@git.swamy.com/scm/project/swamy-main.git

새 BitBucket 저장소에 초기 커밋을 푸시하려고 할 때 이 오류(오류: RPC 실패, 결과=22, HTTP 코드=413)가 발생했습니다.BitBucket repo에 마스터 브랜치가 없어서 오류가 발생했습니다.SourceTree를 사용하는 경우 Git Flow 버튼을 눌러 오리진에 마스터 브랜치를 만들 수 있습니다.

원격 URL을 ssh 또는 https로 변경해야 함

git remote set-url origin git@github.com:laravel/laravel.git

아니면

git remote set-url origin https://github.com/laravel/laravel.git

Hope, 이게 도움이 될거에요 :)

(Win XP에서) 동일한 문제가 발생하여 Gitbin 디렉토리에 있는 libcurl-4.curl 파일을 http://www.paehl.com/open_source/ ?download=renaming_DLL_ONLY.7z(libcurl4.dll로 dll)에서 SSL 버전으로 업데이트했습니다.이제 다 잘 되네요.

gists의 https 클론이 실패합니다(ssh 작동, 아래 참조).

12:00 jean@laptop:~/tmp$ GIT_CURL_VERBOSE=1 git clone https://gist.github.com/123456.git username
Initialized empty Git repository in /home/jean/tmp/username/.git/
* Couldn't find host gist.github.com in the .netrc file; using defaults
* About to connect() to gist.github.com port 443 (#0)
*   Trying 192.30.252.142... * Connected to gist.github.com (192.30.252.142) port 443 (#0)
* found 141 certificates in /etc/ssl/certs/ca-certificates.crt
*        server certificate verification OK
*        common name: *.github.com (matched)
*        server certificate expiration date OK
*        server certificate activation date OK
*        certificate public key: RSA
*        certificate version: #3
*        subject: C=US,ST=California,L=San Francisco,O=GitHub\, Inc.,CN=*.github.com
*        start date: Mon, 30 Apr 2012 00:00:00 GMT
*        expire date: Wed, 09 Jul 2014 12:00:00 GMT
*        issuer: C=US,O=DigiCert Inc,OU=www.digicert.com,CN=DigiCert High Assurance CA-3
*        compression: NULL
*        cipher: ARCFOUR-128
*        MAC: SHA1
> GET /123456.git/info/refs?service=git-upload-pack HTTP/1.1
User-Agent: git/1.7.1
Host: gist.github.com
Accept: */*
Pragma: no-cache

< HTTP/1.1 301 Moved Permanently
< Server: GitHub.com
< Date: Fri, 01 Nov 2013 05:00:51 GMT
< Content-Type: text/html
< Content-Length: 178
< Location: https://gist.github.com/gist/123456.git/info/refs?service=git-upload-pack
< Vary: Accept-Encoding
<
* Ignoring the response-body
* Expire cleared
* Connection #0 to host gist.github.com left intact
* Issue another request to this URL: 'https://gist.github.com/gist/123456.git/info/refs?service=git-upload-pack'
* Couldn't find host gist.github.com in the .netrc file; using defaults
* Re-using existing connection! (#0) with host gist.github.com
* Connected to gist.github.com (192.30.252.142) port 443 (#0)
> GET /gist/123456.git/info/refs?service=git-upload-pack HTTP/1.1
User-Agent: git/1.7.1
Host: gist.github.com
Accept: */*
Pragma: no-cache

< HTTP/1.1 200 OK
< Server: GitHub.com
< Date: Fri, 01 Nov 2013 05:00:52 GMT
< Content-Type: application/x-git-upload-pack-advertisement
< Transfer-Encoding: chunked
< Expires: Fri, 01 Jan 1980 00:00:00 GMT
< Pragma: no-cache
< Cache-Control: no-cache, max-age=0, must-revalidate
< Vary: Accept-Encoding
<
* Connection #0 to host gist.github.com left intact
* Couldn't find host gist.github.com in the .netrc file; using defaults
* About to connect() to gist.github.com port 443 (#0)
*   Trying 192.30.252.142... * connected
* Connected to gist.github.com (192.30.252.142) port 443 (#0)
* found 141 certificates in /etc/ssl/certs/ca-certificates.crt
* SSL re-using session ID
*        server certificate verification OK
*        common name: *.github.com (matched)
*        server certificate expiration date OK
*        server certificate activation date OK
*        certificate public key: RSA
*        certificate version: #3
*        subject: C=US,ST=California,L=San Francisco,O=GitHub\, Inc.,CN=*.github.com
*        start date: Mon, 30 Apr 2012 00:00:00 GMT
*        expire date: Wed, 09 Jul 2014 12:00:00 GMT
*        issuer: C=US,O=DigiCert Inc,OU=www.digicert.com,CN=DigiCert High Assurance CA-3
*        compression: NULL
*        cipher: ARCFOUR-128
*        MAC: SHA1
> POST /123456.git/git-upload-pack HTTP/1.1
User-Agent: git/1.7.1
Host: gist.github.com
Accept-Encoding: deflate, gzip
Content-Type: application/x-git-upload-pack-request
Accept: application/x-git-upload-pack-result
Content-Length: 116

< HTTP/1.1 301 Moved Permanently
< Server: GitHub.com
< Date: Fri, 01 Nov 2013 05:00:53 GMT
< Content-Type: text/html
< Content-Length: 178
< Location: https://gist.github.com/gist/123456.git/git-upload-pack
< Vary: Accept-Encoding
<
* Ignoring the response-body
* Connection #0 to host gist.github.com left intact
* Issue another request to this URL: 'https://gist.github.com/gist/123456.git/git-upload-pack'
* Violate RFC 2616/10.3.2 and switch from POST to GET
* Couldn't find host gist.github.com in the .netrc file; using defaults
* Re-using existing connection! (#0) with host gist.github.com
* Connected to gist.github.com (192.30.252.142) port 443 (#0)
> GET /gist/123456.git/git-upload-pack HTTP/1.1
User-Agent: git/1.7.1
Host: gist.github.com
Accept-Encoding: deflate, gzip
Content-Type: application/x-git-upload-pack-request
Accept: application/x-git-upload-pack-result

* The requested URL returned error: 400
* Closing connection #0
error: RPC failed; result=22, HTTP code = 400

작동 내용:git clone git@gist.github.com:123456.git

같은 문제에 직면해 있었습니다.제 경우에는 동일한 프로젝트에 액세스(풀/푸시)하는 여러 사용자에 걸쳐 호환되지 않는 GIT 버전이었습니다.

방금 GIT 버전을 업데이트하고 안드로이드 스튜디오 설정에서 경로를 업데이트했는데 잘 작동합니다.

편집 -

Git for Windows(1.9.5)에 문제가 있으므로 업데이트하면 도움이 될 수 있습니다.

같은 문제에 직면했지만 git 저장소를 정리하여 해결되었습니다("git clean"을 사용하여 추적되지 않은 파일을 정리).

https url을 사용하여 원격 마스터에 push를 했을 때도 같은 문제를 만나 SSH 주소로 변경하여 모든 것이 완벽하게 다시 작동하게 되었습니다.

저는 /etc/gitlab/gitlab 파일에서 다음 nginx['client_max_body_size'] = 'Xm'으로 크기를 늘려 이 문제를 해결할 수 있었습니다.

X= 당신의 가치.기본값은 250입니다.

파일 업데이트 후 reconfigure 명령 gitlab-ctl reconfigure를 실행합니다.

변화의 크기가 크지 않고 여전히 이 오류가 발생하는 사람들을 위한 것입니다.같은 오류가 있었습니다.error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413무엇이 그 날을 구했는지 아십니까?

git pull --rebase

원격 레포에 변경 사항이 있었는데 제 로컬 레포에는 없고 단순한 것뿐이었습니다.rebase문제를 해결했습니다.오해의 소지가 있는 오류 메시지에 대해 설명합니다.

http 연결을 사용하는 경우 http config를 1.1로 설정하면 도움이 됩니다.

git config http.version HTTP/1.1

언급URL : https://stackoverflow.com/questions/7489813/github-push-error-rpc-failed-result-22-http-code-413

반응형