त्रुटि: RPC विफल; शेष पठन डेटा के साथ कर्ल ट्रांसफर बंद हो गया


130

मैं इस त्रुटि का सामना कर रहा हूं जब मैं GitLab (GitLab 6.6.2 4ef8499) से एक रिपॉजिटरी को क्लोन करने की कोशिश करता हूं:

यहाँ छवि विवरण दर्ज करें

remote: Counting objects: 66352, done.
remote: Compressing objects: 100% (10417/10417), done.
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

तब क्लोन का गर्भपात कर दिया जाता है। इससे कैसे बचा जा सकता है?

जवाबों:


223

यह अधिक बार नहीं होता है, मैं एक धीमे इंटरनेट कनेक्शन पर हूं और मुझे एक शालीनता से विशाल गिट रिपॉजिटरी का क्लोन बनाना है। सबसे आम मुद्दा यह है कि कनेक्शन बंद हो जाता है और संपूर्ण क्लोन रद्द हो जाता है।

Cloning into 'large-repository'...
remote: Counting objects: 20248, done.
remote: Compressing objects: 100% (10204/10204), done.
error: RPC failed; curl 18 transfer closed with outstanding read data remaining 
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

बहुत सारे परीक्षण और त्रुटियों के बाद और "रिमोट एंड अनपेक्षित रूप से लटका हुआ" मेरे पास एक ऐसा तरीका है जो मेरे लिए काम करता है। विचार पहले एक उथले क्लोन को करना है और फिर उसके इतिहास के साथ भंडार को अपडेट करना है।

$ git clone http://github.com/large-repository --depth 1
$ cd large-repository
$ git fetch --unshallow

10
यह एकमात्र उत्तर है जो एसएसएच पर स्विच किए बिना समस्या के लिए समाधान का वर्णन करता है। यह मेरे लिए काम किया, धन्यवाद!
garie

14
यहाँ मुख्य बिंदु है --depth 1और --unshallow। यह धीमे कनेक्शन पर मौजूदा रेपो लाने के लिए भी काम करता है: git fetch --depth 1तब git fetch --unshallow
एंड्रयू टी।

1
स्पष्टता के लिए @AndrewT।, git fetch --unshallowकमांड एक से अधिक क्षमा करने के तरीके में कनेक्शन के नुकसान से संबंधित है git clone? और यही यहाँ फर्क करता है?
लोवेल

2
अब, git fetch --unshallowकमांड RPC failed;एरर देता है
ms_27

1
मेरे लिए काम नहीं किया। पर असफल रहा git fetch --unshallow। लगता है कि इस दृष्टिकोण के लिए भी मेरा रेपो बहुत बड़ा है। केवल एसएसएच ने काम किया।
जोनाथन कैबरेरा

60

कुछ दिनों के बाद, आज मैंने इस समस्या को हल कर दिया है। Ssh कुंजी उत्पन्न करें, इस लेख का अनुसरण करें:

https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/

इसे घोषित करें

  1. Git प्रदाता (GitLab जो मैं उपयोग कर रहा हूं, GitHub)।
  2. इसे स्थानीय पहचान में जोड़ें।

फिर कमांड द्वारा क्लोन करें:

git clone username@mydomain.com:my_group/my_repository.git

और कोई त्रुटि नहीं होती है।

उपरोक्त समस्या

त्रुटि: RPC विफल; शेष पठन डेटा के साथ कर्ल 18 हस्तांतरण बंद हो गया

क्योंकि HTTP प्रोटोकॉल ( curlकमांड) द्वारा क्लोन करने पर त्रुटि होती है ।

और, आपको बफर साइज़ बढ़ाना चाहिए:

git config --global http.postBuffer 524288000

7
मेरे लिए HTTP से SSH के काम में बदलाव करें। विन्यास http.postBufferकाम नहीं किया।
thangdc94

यदि त्रुटि अभी भी है, तो आपको अपनी ssh config फाइल vi /users/username/.ssh/config को एडिट करनी चाहिए और serverAliveInterval 120 को जोड़ना चाहिए और wq का उपयोग करके (बचाने और बाहर निकलने के लिए) vi से बाहर निकलें। यह वास्तव में सर्वर को टाइमआउट और कनेक्शन ब्रेक त्रुटियों से बचाएगा।
तनवीर सिंह 12

यह अच्छा है, लेकिन किसी को भी पता है कि 100% क्लोन क्यों होता है?
workplaylifecycle 14

बदलते हुए http.postBufferमेरे लिए काम किया - धन्यवाद!
नेगर ज़मीरी

धन्यवाद, यह मेरे लिए काम करता है, इस समाधान को अधिक वोट दिया जाना चाहिए :)
सादमी

17

जब मैंने रिमोट से क्लोनिंग की कोशिश की, तो बार-बार एक ही मुद्दा मिला:

remote: Counting objects: 182, done.
remote: Compressing objects: 100% (149/149), done.
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

अंत में यह मेरे लिए काम किया:

git clone https://username@bitbucket.org/repositoryName.git --depth 1

3
क्या
कश्मीर

मेरे लिए अच्छा काम किया।
विजेय जुनुपल्ली

यदि स्रोत रिपॉजिटरी पूरी हो गई है, तो उथले रिपॉजिटरी को एक पूर्ण में बदल दें, उथले भंडार द्वारा लगाए गए सभी सीमाओं को हटा दें। यदि स्रोत रिपॉजिटरी उथली है, तो जितना संभव हो उतना प्राप्त करें ताकि वर्तमान रिपॉजिटरी का स्रोत रिपॉजिटरी के समान इतिहास हो।
रहमानरेज़ेई

6

आपको कंप्रेशन को बंद करने की आवश्यकता है:

git config --global core.compression 0

तब आपको उथले क्लोन का उपयोग करने की आवश्यकता होती है

git clone --depth=1 <url>

तो सबसे महत्वपूर्ण कदम आपके क्लोन प्रोजेक्ट में सीडी है

cd <shallow cloned project dir>

अब क्लोन को हटा दें, चरण दर चरण

git fetch --depth=N, with increasing N

जैसे।

git fetch --depth=4

फिर,

git fetch --depth=100

फिर,

git fetch --depth=500

आप चुन सकते हैं कि आप इस N को प्रतिस्थापित करके कितने कदम चाहते हैं,

और अंत में शेष सभी संशोधन का उपयोग कर डाउनलोड करें,

git fetch --unshallow 

upvote अगर यह आपकी मदद करता है :)


5

सरल समाधान: बल्कि तब https के माध्यम से क्लोनिंग, इसे ssh के माध्यम से क्लोन करें।

उदाहरण के लिए:

git clone https://github.com/vaibhavjain2/xxx.git - Avoid
git clone git@github.com:vaibhavjain2/xxx.git - Correct

हाँ। मैं विंडोज़ उपयोगकर्ता हूँ।
वैभव जैन

5

नेटवर्क कनेक्शन की समस्या।
शायद लगातार कनेक्शन टाइमआउट के कारण।
सबसे अच्छा तरीका दूसरे नेटवर्क में बदलना है।


5

इन चरणों ने मेरे लिए काम किया: git://इसके बजाय का उपयोग करनाhttps://


3
ढेर अतिप्रवाह में आपका स्वागत है। कृपया थोड़ा और विस्तृत जवाब देने की कोशिश करें ताकि जो कोई भी आपके समाधान की कोशिश करना चाहता है वह इतनी आसानी से कर सके।
McMutton

वास्तव में, यह उत्तर इस धागे में अगले लोगों की तुलना में अधिक विशिष्ट है ..
xxxvodnikxxx

4

जैसा कि ऊपर उल्लेख किया गया है, सबसे पहले शुरुआत में उन्नत लॉग निर्देशों को जोड़ने से बैश से अपना गिट कमांड चलाएं: GIT_TRACE=1 GIT_CURL_VERBOSE=1 git ...

उदा। GIT_CURL_VERBOSE=1 GIT_TRACE=1 git -c diff.mnemonicprefix=false -c core.quotepath=false fetch origin यह आपको विस्तृत त्रुटि जानकारी दिखाएगा।


2

मेरे साथ यह समस्या इसलिए हुई क्योंकि प्रॉक्सी कॉन्फ़िगरेशन। मैंने प्रॉक्सी अपवाद में ip git सर्वर को जोड़ा है। Git सर्वर स्थानीय था, लेकिन no_proxy वातावरण चर सही तरीके से सेट नहीं किया गया था।

मैंने इस कमांड का उपयोग समस्या की पहचान करने के लिए किया:

#Linux:
export GIT_TRACE_PACKET=1
export GIT_TRACE=1
export GIT_CURL_VERBOSE=1

#Windows
set GIT_TRACE_PACKET=1
set GIT_TRACE=1
set GIT_CURL_VERBOSE=1

बदले में "प्रॉक्सी-ऑथराइजेशन" था क्योंकि स्पॉट सर्वर स्पॉट स्पॉट प्रॉक्सी के माध्यम से नहीं जाना चाहिए था। लेकिन वास्तविक समस्या प्रॉक्सी नियमों द्वारा परिभाषित फाइलों के आकार की थी


2

मेरे लिए, मुद्दा यह था कि कनेक्शन पूरे क्लोन पूर्ण होने से पहले बंद हो जाता है। मैंने वाईफाई कनेक्शन के बजाय ईथरनेट का उपयोग किया। फिर यह मेरे लिए हल करती है


1

यहाँ पर सभी उत्तरों की कोशिश की। मैं अपनी मशीन पर कोकोपोड्स जोड़ने की कोशिश कर रहा था।

मेरे पास SSH कुंजी नहीं थी इसलिए @Do Nhu Vy को धन्यवाद दिया

https://stackoverflow.com/a/38703069/2481602

और अंत में उपयोग किया

git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master

अंततः https://stackoverflow.com/a/50959034/2481602 पाया गया समस्या को ठीक करने के लिए


1

यह त्रुटि धीमे, या परेशान इंटरनेट कनेक्शन के साथ आमतौर पर अधिक होती है। मैंने अच्छी इंटरनेट स्पीड से जोड़ा है तो यह पूरी तरह से काम कर रहा है।


1

यह समस्या तब आती है जब आप प्रॉक्सी समस्या या धीमा नेटवर्क होते हैं। आप गहराई समाधान के साथ जा सकते हैं या

git fetch --all  or git clone 

    

इस दे त्रुटि यदि कर्ल 56 Recv विफलता तो जिप के माध्यम से फाइल डाउनलोड या के बजाय शाखा का नाम spicify --all

git fetch origin BranchName 

-1

कोशिश करने के लिए git क्लोन प्रोटोकॉल बदलना।

उदाहरण के लिए, यह त्रुटि तब हुई जब "git clone https: // xxxxxxxxxxxxxxxxx "

आप "git क्लोन क्लोन git: // xxxxxxxxxxxxxx" के साथ कोशिश कर सकते हैं, शायद तब ठीक हो।


-6

ये कदम मेरे लिए काम कर रहे हैं:

cd [dir]
git init
git clone [your Repository Url]

मुझे उम्मीद है कि आपके लिए भी काम करता है।


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