जीथब पुश त्रुटि: आरपीसी विफल; परिणाम = 22, HTTP कोड = 413


129

गितुब के साथ बेवकूफ मुद्दा अभी चल रहा है। मेरे पास परिवर्तनों की एक सभ्य मात्रा है (~ 120 एमबी आकार), जब मैं धक्का देने का प्रयास करता हूं, तो यही होता है:

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, ताकि यह मुद्दा न बने। यह क्या हो सकता है?


3
भविष्य के आगंतुकों के लिए, यदि आप मिल रहे हैं, तो HTTP code = 0GitHub कल की तरह नीचे है।
StackExchange User

3
मुझे HTTP code = 0तब मिला जब मेरा प्रॉक्सी ब्लॉक हो रहा था। मेरा http प्रॉक्सी github के साथ काम करता है, लेकिन https मेरे कॉर्पोरेट प्रॉक्सी के लिए नहीं है। मुझे लगता है कि मेरा HTTPS प्रॉक्सी बल NTLM है, जबकि HTTP BASIC को स्वीकार करता है। मैंने रेपो ओरिजिनल URL को https से बदलकर http कर दिया और यह मेरे लिए काम कर गया। git remote set-url origin http://github.com/GitUserName/GitRepoName.git
मोप्स

जवाबों:


206

यदि आपको त्रुटि 413 मिलती है, तो समस्या git के साथ नहीं, बल्कि आपके वेब सर्वर के साथ है । यह आपका वेब सर्वर है जो बड़ी अपलोड फ़ाइलों को रोक रहा है।

नग्नेक्स के लिए समाधान

Http ब्लॉक में बस अपना लोड करें nginx.confऔर जोड़ें client_max_body_size 50m;(अपनी आवश्यकताओं के मूल्य में परिवर्तन)।

निष्पादित करके नए कॉन्फ़िगरेशन को स्वीकार करने के लिए पुन: लोड करें sudo service nginx reloadऔर http पर अपनी प्रतिबद्धता को आगे बढ़ाने के लिए फिर से प्रयास करें।

अपाचे के लिए समाधान

किसी ब्लॉक के अंदर आपके httpd.confऐड में LimitRequestBody 52428800(आपकी जरूरतों के लिए मूल्य में बदलाव) <Directory />। ऐसा करने से आप पूरे सर्वर फाइलसिस्टम के अनुरोध को सीमित कर सकते हैं, केवल एक वर्चुअल होस्ट या एक निर्देशिका।

आशा है कि ये आपकी मदद करेगा।


1
मेरे लिए 50 मीटर पर्याप्त नहीं था, लेकिन इससे मेरी समस्या हल हो गई! धन्यवाद!
केविन सी। क्रिंच

मुझे यह भी एक मध्यवर्ती nginx प्रॉक्सी पर करना पड़ा।
जपेली १elli

2
क्या होगा अगर आपका Nginx का उपयोग नहीं कर रहा है?
कातियानी

Gitlab सर्वग्राही स्थापना के लिए कोई समाधान ..? नवीनतम संस्करण 12.1
शास्वत

बहुत खोजने, पुकारने और रोने के बाद। (उस क्रम में) मैंने पाया कि एंबेडेड कॉन्फिगर फ़ाइल यहाँ स्थित थी: /var/opt/gitlab/nginx/conf/gitlab-http.conf
kroolk

55

मैं यह समझ गया!!! पोस्ट हिट करने के बाद निश्चित रूप से मैं सही होगा!

मेरे पास HTTPS url का उपयोग करने के लिए रेपो सेट था, मैंने इसे SSH पते में बदल दिया, और सब कुछ त्रुटिपूर्ण रूप से काम करना शुरू कर दिया।


51
यह समस्या का कारण नहीं है। वह सिर्फ एक वर्कअराउंड है। मैं जानना चाहता हूं कि इसका https पर असफल होना क्यों।
स्टीव वॉल्श

4
मेरे लिए ssh एक विकल्प नहीं है। तो यदि आप एक ही स्थिति @ZincX में हैं, तो मेरा उत्तर ऊपर देखें।
तिनौ

2
यह सिर्फ एक काम है। टीनू का उत्तर स्वीकृत उत्तर होना चाहिए।
बेन

1
आपने उसे कैसे बदला?
दिनियस क्रेविस

बहुत से लोगों के पास शायद अपने वेब सर्वर तक पहुंच नहीं है इसलिए यह जानकारी काफी पसंद की जाती है!
मैथ्यू

38

दूरस्थ url (https -> git @ ...) से बदलने के लिए कमांड कुछ इस प्रकार है

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

यहाँ उत्पत्ति मेरे रिमोट का नाम है (git Remote और जो सामने आता है वह आपका मूल है)।


2
Bitbucket ('क्लोन' बटन) के मामले में मुझे एक समस्या थी जब So ssh://से हटा दिया गया, ssh://git@<bitbucket-repo>:<port>/dir/to/project.gitतो सावधान!
युद्ध

9

मैं एक ही समस्या थी, लेकिन मैं एक रिवर्स प्रॉक्सी का उपयोग कर रहा था।

इसलिए मुझे सेट करना पड़ा

client_max_body_size 50m; 

दोनों कॉन्फ़िगर फ़ाइलों के अंदर:

  • gitlab nginx वेब सर्वर पर (जैसा कि पिछले उत्तरों के अंदर कहा गया है)
  • लेकिन यह भी समर्पित सर्वर पर होस्ट nginx रिवर्स प्रॉक्सी पर।

Gitlab सर्वग्राही स्थापना के लिए कोई समाधान ..?
शाश्वत

शायद omnibus / nginx conf पर एक नज़र डालें: gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/…
grimabe

इस समाधान के लिए धन्यवाद देना चाहता था, मेरे पास यह सेटअप बिल्कुल था।
tjeerdnet

6

मेरे पास git URL में "HTTPS //" पहले से था फिर भी इस त्रुटि का सामना करना पड़ा।

मैंने जो भी किया वह विकल्प -यू को पुश के साथ जोड़ना था और यह काम कर गया।

git push -u origin master


4

एक git / समापन बिंदु होस्ट करने के लिए IIS 7 का उपयोग करने वालों के लिए :httphttps

आपको अपने को बढ़ाने की आवश्यकता है uploadReadAheadSize

इंटरनेट सूचना सेवा (IIS) प्रबंधक लॉन्च करें

  1. सर्वर फ़ील्ड का विस्तार करें

  2. साइट्स का विस्तार करें

  3. उस साइट का चयन करें जिसके लिए आप संशोधन करना चाहते हैं।

  4. सुविधाएँ अनुभाग में, डबल क्लिक करें Configuration Editor

  5. Sectionचयन के तहत :system.webServer > serverRuntime

  6. uploadReadAheadSizeअनुभाग को संशोधित करें (मान के बीच 0और होना चाहिए 2147483647।)

  7. क्लिक करें Apply

  8. वेबसाइट को पुनरारंभ करें


पुनः प्रारंभ करने के लिए वेबसाइट मेरे द्वारा चुने गए डिफ़ॉल्ट वेब साइट और दाएँ हाथ की ओर पर, के तहत कार्रवाई कर रहे हैं बंद करो और प्रारंभ बटन।
jgoeders

यह फिक्स अभी भी IIS 10. में आवश्यक था
jgoeders

2

यदि आप बड़े आकार में बदलावों को आगे बढ़ाते हुए इस समस्या का सामना कर रहे हैं तो टर्मिनल में कमांड के नीचे दौड़ें।

git config --global http.postBuffer 157286400

अधिक जानकारी के लिए इसे देखें ।


1

त्रुटि 'libcurl' में होती है, जो कि https अपलोड के लिए अंतर्निहित प्रोटोकॉल है। समाधान किसी तरह से अपग्रेड है। त्रुटि के बारे में अधिक जानकारी प्राप्त करने के लिए, GIT_CURL_VERBOSE = 1 सेट करें

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

Libcurl doc के अनुसार त्रुटि का अर्थ: CURLE_HTTP_RETURNED_ERROR (22)

यदि CURLOPT_FAILONERROR TRUE पर सेट है और HTTP सर्वर एक त्रुटि कोड देता है जो = = 400 है, तो यह वापस आ जाता है।

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


1

मुझे यह समस्या तब हुई जब मैंने लिनक्स मशीन में एक git रेपो को क्लोन करने की कोशिश की।

निम्न URL विंडोज़ में मेरे लिए काम कर रहा है

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

जबकि निम्न URL लिनक्स मशीन में काम करता है और इसमें URL में https है

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

1

मेरे पास यह त्रुटि थी ( त्रुटि: RPC विफल; परिणाम = 22, HTTP कोड = 413 ) जब मैंने अपनी प्रारंभिक प्रतिबद्ध को एक नए BitBucket रिपॉजिटरी में धकेलने की कोशिश की। मेरे लिए त्रुटि इसलिए आई क्योंकि बिटबकेट रेपो की कोई मास्टर शाखा नहीं थी । यदि आप SourceTree का उपयोग कर रहे हैं, तो आप Git Flow बटन दबाकर मूल पर एक मास्टर शाखा बना सकते हैं ।


1

क्या आप 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 पते को संशोधित करें।
git remote set-url origin git@github.com:[user_name]/[project_name].git

यदि आप दूरस्थ रिपॉजिटरी नाम निर्धारित करते हैं, तो सीधे चरण 4 पर आगे बढ़ें। अब, आप पुश ऑपरेशन को खुशी से कर सकते हैं।



0

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


ओपी ने क्लोन के बारे में नहीं पूछा, लेकिन पुश के बारे में।
ओवेन ब्लैकर

1
खैर, ओपी ने जीथब के साथ संचार के बारे में पूछा। क्यों मैं gists के बारे में एक जवाब के साथ जवाब दिया मुझे हालांकि कोई विचार नहीं है।
जीन जोर्डन

हाह, काफी गोरा :)
ओवेन ब्लैकर

0

उसी मुद्दे का सामना कर रहा था। मेरे मामले में यह कई उपयोगकर्ताओं के लिए गैर-संगत जीआईटी संस्करण था जो एक ही परियोजना तक पहुंच (पुल / पुश) कर रहे हैं।

अभी जीआईटी संस्करण को अपडेट किया है और एंड्रॉइड स्टूडियो सेटिंग्स पर पथ को अपडेट किया है और यह मेरे लिए ठीक काम कर रहा है।

संपादित करें -

Windows के लिए Git (1.9.5) में कुछ समस्या है, इसे अपडेट करने से मदद मिल सकती है।


0

एक ही मुद्दे का सामना कर रहा था, लेकिन इसे गिट रिपॉजिटरी ("क्लीन क्लीन" का उपयोग करके क्लीन अनट्रैक की गई फाइलों) को साफ करके हल किया गया।


1
जब मैं साफ करता हूं तो यह इस त्रुटि को दिखा रहा है: घातक: clean.requireForce डिफॉल्ट को सही और न ही -i, -n, और -f दिया गया; साफ करने से इनकार
चांदनी

@Chandni और जो कोई भी एक ही त्रुटि संदेश git का सामना करता है, वह आपकी मदद करता है, git clean -iउदाहरण के लिए इंटरैक्टिव मोड में शुरू करने का प्रयास करें।
seethrough

@ सेथ्रू - धन्यवाद
चांदनी

0

दूरस्थ यूआरएल को ssh या https में बदलने की आवश्यकता है

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

या

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

आशा है, यह मदद करेगा :)


0

जब मैंने दूरस्थ मास्टर को पुश करने के लिए https url का उपयोग किया, तो मुझे वही समस्याएं मिलीं, मैंने इसे SSH पते पर बदल दिया, और सब कुछ फिर से काम करना शुरू कर दिया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.