Gitub के लिए प्रतिबद्ध पुश करने पर Git विफल हो जाता है


130

मैंने एक git रेपो पर क्लोन किया जिसे मैंने अपने लैपटॉप पर github पर होस्ट किया है। मैं सफलतापूर्वक समस्या के बिना कमिट के एक जोड़े को धक्का देने में सक्षम था। हालाँकि, अब मुझे निम्न त्रुटि मिलती है:

Compressing objects: 100% (792/792), done.
error: RPC failed; result=22, HTTP code = 411
Writing objects: 100% (1148/1148), 18.79 MiB | 13.81 MiB/s, done.
Total 1148 (delta 356), reused 944 (delta 214)

यहाँ से यह सिर्फ रुक जाता है और मैं अंत में करने के लिए है CTRL+ Cटर्मिनल के लिए वापस।


HTTP त्रुटि क्यों है? क्या आप SSH के माध्यम से गिथब को आगे नहीं बढ़ाते हैं?
Cascabel

स्पष्ट करने के लिए: यूआरएल में originखंड के .git/confighttp कहना नहीं है, यह करता है?
Cascabel

@Jefromi मैंने http लिंक पढ़ने / लिखने के लिए अपने निजी रेपो पर क्लोन किया।
स्टीफन मेल्विन

नहीं, यह https कहता है। यह अजीब है क्योंकि मैं विफलता से पहले दो पुश करने में सक्षम रहा हूं।
स्टीफन मेल्विन

जवाबों:


292

मेरा एक ही मुद्दा था और मेरा मानना ​​है कि इसका रेपो के आकार के साथ क्या होगा (संपादित करें- या किसी विशेष फ़ाइल का आकार) जिसे आप पुश करने की कोशिश कर रहे हैं।

मूल रूप से मैं नए रिपोज बनाने और उन्हें गितुब में धकेलने में सक्षम था। लेकिन एक मौजूदा एक काम नहीं करेगा।

HTTP त्रुटि कोड मुझे लगता है कि यह 'लंबाई आवश्यक' त्रुटि है। तो शायद यह कैल्क या महान है कि अधिकतम करने के लिए बहुत बड़ा है। कौन जाने।

संपादित करें

मैंने पाया कि समस्या बड़ी हो सकने वाली फ़ाइलों की हो सकती है। मेरे पास एक अपडेट था जो उस बिंदु पर सफल पुश करने पर भी धक्का नहीं देगा। कमेटी में केवल एक फाइल थी लेकिन यह 1.6M हुआ

इसलिए मैंने निम्नलिखित विन्यास परिवर्तन जोड़ा

git config http.postBuffer 524288000

फ़ाइल आकार 500M तक की अनुमति देने के लिए और फिर मेरे पुश ने काम किया। यह हो सकता है कि यह http प्रोटोकॉल पर एक बड़े रेपो को आगे बढ़ाने के साथ शुरू में समस्या थी।

END EDIT

जिस तरह से मैं इसे काम करने के लिए प्राप्त कर सकता हूं (इससे पहले कि मैं पोस्टबफ़र को संशोधित करूं) EDIT मेरे रेपो को टारगेट करने के लिए था, इसे एक मशीन पर कॉपी करें जो ssh पर गिट कर सकती है, और इसे गीथब पर धकेल सकती है। फिर जब आप मूल सर्वर से एक पुश / पुल करने की कोशिश करते हैं तो उसे https पर काम करना चाहिए। (चूंकि यह एक मूल धक्का की तुलना में बहुत कम मात्रा में डेटा है)।

उम्मीद है की यह मदद करेगा।


मेरे लिए भी काम किया, हालाँकि मुझे 411 की बजाय HTTP 501 त्रुटि लगी थी। धन्यवाद!
इमाद अहमद मंज़ूर

धन्यवाद! यह काम किया, और अपलोड को गति भी। एक वेबसाइट को नए विंडोज एज़्योर वेबसाइट्स पर धकेलने की कोशिश कर रहा था और यह विफल रही।
जेक

23
क्या इस मूल्य को बहुत अधिक निर्धारित करने के लिए एक नकारात्मक पहलू है?
स्नोगलथॉर्प

@snogglethorpe संभावित रूप से: "स्थानांतरण-एन्कोडिंग: chunked का उपयोग स्थानीय स्तर पर बड़े पैमाने पर पैक फ़ाइल बनाने से बचने के लिए किया जाता है"। यदि आप कुछ विशाल करने के लिए मूल्य सेट करते हैं, तो आप पुश करने का प्रयास करते समय बड़े पैमाने पर पैक फ़ाइलों को उत्पन्न कर सकते हैं। सभी filesystem बड़े पैमाने पर फ़ाइलों को अच्छी तरह से संभाल नहीं करते हैं और वे कुशलता से prune नहीं कर सकते हैं। आप इन फ़ाइलों को .गित / ऑब्जेक्ट्स / पैक में देख सकते हैं।
भांग

बदलना हानिकारक से http.postBufferअधिक अनावश्यक है, लेकिन एक नकारात्मक साइड इफेक्ट है: इसे डिफ़ॉल्ट से ऊपर बढ़ाने से बड़े पुश के लिए विलंबता बढ़ सकती है (चूंकि क्लाइंट HTTP अनुरोध को बड़ी मात्रा में बफर कर देगा)।
स्वतंत्र कुमार

8

यदि यह कमांड मदद नहीं करता है

git config http.postBuffer 524288000

Ssh मेथड को https में बदलने की कोशिश करें

git remote -v
git remote rm origin 
git remote add origin https://github.com/username/project.git

4

एक सर्वर समस्या (यानी "GitHub" मुद्दा) की तरह दिखता है।
यदि आप इस धागे को देखते हैं , तो यह तब हो सकता है जब git-http-backendएक भ्रष्ट ढेर हो जाता है (और चूंकि वे बस एक स्मार्ट http समर्थन करते हैं ...)
लेकिन जो भी वास्तविक कारण है, वह हाल ही में छिटपुट व्यवधान से संबंधित हो सकता है । GitHub फाइलर में से एक

क्या आपको अभी भी यह त्रुटि संदेश दिखाई दे रहा है? क्योंकि अगर तुम करते हो:

  • अपने स्थानीय Git संस्करण की जाँच करें (और नवीनतम एक पर अपग्रेड करें)
  • GitHub बग के रूप में इसकी रिपोर्ट करें ।

नोट: स्मार्ट HTTP सपोर्ट हम में से उन लोगों के लिए एक बड़ी बात है जो एक प्रमाणिक रूप से आधारित एंटरप्राइज फ़ायरवॉल प्रॉक्सी के पीछे हैं!

अब से, यदि आप http://url पर एक रिपॉजिटरी क्लोन करते हैं और आप एक Git क्लाइंट संस्करण 1.6.6 या अधिक का उपयोग कर रहे हैं, तो Git अपने आप नए, बेहतर परिवहन तंत्र का उपयोग करेगा।
हालांकि इससे भी अधिक आश्चर्यजनक यह है कि अब आप उस प्रोटोकॉल पर जोर दे सकते हैं और निजी रिपोजिटरी को भी क्लोन कर सकते हैं। यदि आप एक निजी रिपॉजिटरी का उपयोग करते हैं, या आप एक सहयोगी हैं और पुश एक्सेस चाहते हैं, तो आप अपने उपयोगकर्ता नाम को URL में रख सकते हैं और जब आप इसे एक्सेस करने का प्रयास करते हैं तो Git आपको पासवर्ड के लिए संकेत देगा।

पुराने क्लाइंट भी पुराने, कम कुशल तरीके से वापस आ जाएंगे, इसलिए कुछ भी नहीं टूटना चाहिए - बस नए ग्राहकों को बेहतर काम करना चाहिए।

तो फिर, पहले अपने Git क्लाइंट को अपग्रेड करना सुनिश्चित करें।


मुझे ADSL वायरलेस राउटर (फ्रेंच ऑरेंज लाइवबॉक्स) के पीछे इसी तरह की परेशानी मिली: github.com पर मेरी SSH कुंजी प्रकाशित करना असंभव , https पर धकेल दिया गया ... जब तक मैं एक वैकल्पिक इंटरनेट एक्सेस का उपयोग नहीं करता।
यवस मार्टिन

जब मैं "त्रुटि: RPC विफल हो रहा था, तब स्मार्ट HTTP सपोर्ट मुझे मेरे फ़ायरवॉल प्रॉक्सी के माध्यम से प्राप्त करने में कामयाब रहा; परिणाम = 22, HTTP कोड = 0" जब मैंने पुश करने का प्रयास किया।
बोगिन

@Boggin हाँ, मैं पुष्टि करता हूं कि स्मार्ट http आमतौर पर पसंदीदा विकल्प होता है जब कोई प्रॉक्सी के पीछे होता है। मानक http / https पोर्ट (लगभग) हमेशा खोला जाता है।
VonC


0

मैंने अपने स्वयं के होस्ट किए गए बोनोबो-गिट सर्वर को धक्का देने की कोशिश की, और यह महसूस नहीं किया, कि http.postbuffer का मतलब परियोजना निर्देशिका है ...

तो बस अन्य भ्रमित लोगों के लिए:

क्यों? मेरे मामले में, मेरे पास संपत्ति के साथ बड़ी ज़िप फाइलें थीं और कुछ पीएसडी के रूप में अच्छी तरह से धकेल दिया गया था - मुझे लगता है कि बफर के लिए बड़ा।

यह कैसे करें। http.postbuffer: अपने प्रॉजेक्ट के लिए उस कमांड को src डायरेक्टरी के भीतर निष्पादित करें। .it फोल्डर के पास, सर्वर पर नहीं।

ज्ञात हो, बड़े बफर (चंक) फाइलें उस बफर आकार की बनाई जाएंगी।

नोट: बस अपनी सबसे बड़ी फ़ाइलों की जाँच करें, फिर बफर सेट करें।


-2

ज्यादातर पुश करने की समस्या फ़ाइलों के आकार के कारण होती है, जिन्हें पुश करने की आवश्यकता होती है। मैं सिर्फ 2 एमबी के आकार के कुछ पुस्तकालयों को आगे बढ़ाने की कोशिश कर रहा था, फिर भी धक्का 7. परिणाम के साथ आरपीसी की त्रुटि दे रहा था। लाइन 4 एमबीपीएस की है और ठीक काम कर रही है। कुछ बाद में पुश करने की कोशिशों से मुझे सफलता मिली। यदि ऐसी त्रुटि आती है, तो कुछ मिनट प्रतीक्षा करें और प्रयास करते रहें।

मुझे यह भी पता चला कि जीथब डाउन होने या उनकी तरफ से अस्थिर नेटवर्क मिलने पर कुछ आरपीसी विफलताएं हैं।

इसलिए कुछ अंतराल के बाद कोशिश करते रहना ही एकमात्र विकल्प है!


-2

इन मामलों में आप ssh की कोशिश कर सकते हैं अगर https अटक गया है।

इसके अलावा, आप एक खगोलीय आकृति में बफर आकार को बढ़ाने की कोशिश कर सकते हैं ताकि आपको बफर आकार के बारे में चिंता करने की ज़रूरत न हो और अधिक git config http.postBuffer 100000000

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