वस्तुओं को लिखते समय Git लटक जाता है


100

मैं कोशिश कर रहा हूँ git push -u origin masterऔर यह बस पर लटका हुआ है

Writing objects:  99% (219/220), 12.65 MiB | 97 KiB/s

12.65हिस्सा चारों ओर बदलाव। जब मैं प्रक्रिया से बाहर निकलता हूं और इसे फिर से चलाता हूं, तो यह 99% पर फिर से शुरू होता है, लेकिन कभी खत्म नहीं होता है, पहले की तरह।

इसे कभी भी सफलतापूर्वक नहीं धकेला गया। यह प्रारंभिक प्रतिबद्धता है।


आप कहां धक्का देना चाहते हैं? आप SSH या कुछ अन्य प्रोटोकॉल का उपयोग कर रहे हैं?
पाओलो एबरमन जू

25
http.postbufferमदद की स्थापना करेगा ? stackoverflow.com/questions/6842687/…
VonC

3
VonC की टिप्पणी को अनदेखा करना बहुत आसान है। इससे मेरा काम बनता है।
थुआन

1
अविश्वसनीय। यह मेरे लिए भी किया था। और यह अब 2018 है। और यह एसएसएच है, एचटीटीपी नहीं। और पूरा रेपो 15MB जैसा है। और "रिमोट" सर्वर लोकलहोस्ट है। बंद करो, Git, लोगों, कृपया! ;)
एसजे।

जवाबों:


218

मैंने VonC की सलाह का पालन किया:

git config --global http.postBuffer 524288000

टिप्पणियों के आधार पर भविष्य के संदर्भों के लिए:

500 MB: 524288000 (as posted in the original answer)
1 GB: 1048576000
2 GB: 2097152000 (anything higher is rejected as 'out of range')

4
omg, इसके लिए धन्यवाद! मेरे बाल खींच रहा था, और इसने मेरे मुद्दों को हल कर दिया!
ब्रेट थॉमस

3
@HooForte बढ़ती हुई बफर फाइलों के मेरे लटकते लेखन को हल करने के लिए लग रहा था, लेकिन मेरा गिट पुश कभी पूरा नहीं हुआ (बाद में लटका हुआ Writing objects: 100%) - पहले यह 25% पर लटका हुआ था इसलिए यह स्पष्ट रूप से मदद करता था। हालाँकि, मैं अभी भी "अजीब" व्यवहार कर रहा था। मैंने अपने सिस्टम को फिर से शुरू किया और यह चीजों को हल करने के लिए लग रहा था ... FYI करें ... अगर कोई भी अपने बफर को बढ़ाने के बाद भी मुद्दों को मार रहा है, तो मेरी प्रणाली को फिर से शुरू करने से मेरी स्थिति में मदद मिली (पुराने स्कूल समाधान कम नहीं है, लेकिन एक नया पुनरारंभ वास्तव में मदद करता है)।
ट्विनकब

4
क्या कोई समझा सकता है कि नंबर 524288000कहां से आता है?
रायरे

6
@ रेअर इट्स 500 एमबी
ह्यूगो फोर्ट

1
ईश्वर आपको और
स्टैकओवरफ़्लो को

35

यह रेपो डायरेक्टरी में विशाल, अहस्ताक्षरित फ़ाइल के कारण हो रहा था। ओह।

संपादित करें

हैंग इसलिए था क्योंकि फ़ाइल को अपलोड होने में काफी समय लग रहा था। फ़ाइल को पुश में शामिल नहीं किया गया था।

संपादित करें

हालांकि यह सच है एक बहुत बड़ा फ़ाइल, इस मुद्दे के पीछे का कारण हो सकता है कि यदि आप विचाराधीन फ़ाइल नजरअंदाज नहीं कर सकते हैं या सिर्फ है पुश करने के लिए यह तो पालन इस सवाल का जवाब।


@TimoSolo मैं ऐसा क्यों करूंगा? मैं इस मुद्दे के साथ एक था, और मैंने सटीक फिक्स का दस्तावेजीकरण किया। बहुत सीधा।
मत्तलक्षेंद्र

4
हां, आपका समाधान समस्या को दूर करना था। अन्य लोगों के लिए जिन्हें वास्तव में एक बड़ी फ़ाइल को पुश करने की आवश्यकता है, @ hugo-forte का उत्तर समस्या को हल करता है। आपके पास नहीं है , मैंने सोचा था कि यह और लोगों की मदद करेगा - एसओ की भावना में।
टिमोसोलो

1
सवाल यह नहीं है कि "मैं कैसे कर सकता हूं, फिर एक बड़ी फ़ाइल को धक्का दें?"। यह "मेरा धक्का धक्का है। क्यों?" यदि आप हमेशा के लिए धक्का लेने की उम्मीद नहीं कर रहे हैं, तो आप शायद (मेरी तरह) उस विशाल फ़ाइल को करने का मतलब नहीं है।
मैटलैक्न्डर

3
@mattalxndr जब स्वीकृत जवाब में 1/8 वोट होते हैं, तो आपको इसे बदल देना चाहिए।
NorCalKnockOut

1
@mattalxndr न तो जवाब सही है। एक कारण की पहचान करता है, और दूसरा एक समाधान प्रदान करता है। आदर्श उत्तर कारण की पहचान करेगा, समझाएगा कि इसका दिया परिणाम क्यों है, और दो वैकल्पिक समाधानों की पेशकश करें। आईएमओ, वर्तमान विकल्पों में से, ह्यूगो फोर्टा का जवाब बेहतर है क्योंकि यह समस्या को हल करेगा चाहे आप फ़ाइल को धक्का दें या नहीं। यह उन लोगों को अनदेखा नहीं कर रहा है जो आपने वही गलती की थी; यह उनके लिए समस्या को उतना ही ठीक करता है जितना कि किसी और को, लेकिन एक फाइल को हटाने के लिए उन्हें छोड़ देता है यदि वे इसे पुश करने का इरादा नहीं रखते थे।
बीजेड

7

मुझे (16% वस्तुओं को लिखने) के साथ एक ही समस्या थी फिर अटकना घातक। मैंने इसे वर्तमान परिवर्तनों को सहेजकर और एक नए रिपॉजिटरी को क्लोन करके हल किया, फिर इसमें संशोधित फ़ाइलों की प्रतिलिपि बनाएँ।

उदाहरण के लिए। मान लें कि वर्तमान रिपॉजिटरी ए है, तो आपको बस इतना करना है:

  1. mv A B
  2. git clone A
  3. mv B/* A/
  4. rm -rf B

फिर प्रतिबद्ध और धक्का और यह सब ठीक काम किया। यह संशोधित फ़ाइलों को संशोधित के रूप में मान्यता दी :)


आप एक अलग लक्षण का अनुभव कर रहे थे। मेरी कोई घातक त्रुटी नहीं थी।
मटैलिकंड्र

5

मेरे मामले में, मैं रेपो के समान ड्राइव पर संग्रहीत खराब अधिकारों के साथ एक git फ़ोल्डर का उपयोग कर रहा था, लेकिन यह ssh के साथ भी ऐसा ही हो सकता है, भले ही आप एक अधिकृत लॉगिन उपयोगकर्ता का उपयोग करें।

जांच करें कि यदि आपके पास दूर के रेपो पर लिखने के अधिकार हैं।

उदाहरण:

Init स्थानीय और दूर के रेपो

git init /tmp/src
git init --bare /tmp/dst
cd /tmp/src

मूल के लिए दूरस्थ रेपो जोड़ना

src > git remote add dest /tmp/dst

समस्या का अनुकरण

src > chmod -R 555 /tmp/dst

फर्जी फाइल जोड़कर उसे आगे बढ़ाया

src > touch a && git add a && git commit -m 'demo'
src > git push --set-upstream dest master
src > git push
Counting objects: 3, done.
Writing objects: 99% (2/3), 202 bytes | 0 bytes/s.

पकड़ लटकी

उपाय

src > chmod -R 775 /tmp/dst

2
कृपया अपने उत्तर में कुछ और अनुकरणीय विवरण जोड़ने पर विचार करें, धन्यवाद।
मिर्जा सिसिक

1
माफ़ करना। क्या यह बेहतर है ?
Naewis

3

मेरी स्थिति में यह फ़ाइल का आकार था। आवश्यक एक्सटेंशन के साथ एक .gitignore फ़ाइल जोड़कर मैं अधिकांश अवांछित फ़ाइलों को धकेलने में सक्षम था।


2

मेरे मामले में मैं धीमी गति से इंटरनेट अपलोड गति कर रहा था और जिस फ़ाइल को मैं पुश करना चाहता था वह बड़ी थी, चाल git LFS (बड़ी फ़ाइल संग्रहण) का उपयोग करना है जो बड़ी फ़ाइलों को अपलोड करने के लिए बहुत अधिक रोगी है, आप यहां एक Git LFS ट्यूटोरियल पा सकते हैं


1

git clean -f -nमेरे मुद्दे को हल करती है। बहुत सी ऐसी अनकही फाइलें हैं जिनका पता नहीं चल पाया है। लेकिन सावधान रहें क्योंकि यह आपकी निर्देशिका में फ़ाइलों को हटा देगा


3
विशेष रूप से यह कौन सी फ़ाइलों को हटा देगा?
जाजिमोव

1

मेरे मामले में, मैं अपनी कंपनी के नियमों को पूरा किए बिना धक्का देने की कोशिश कर रहा था। मुझे बाद में पता चला कि हमें "मोबिल-एक्सएक्सएक्सएक्स" के साथ अपने प्रतिबद्ध संदेशों को शुरू करना चाहिए, जहां एक्सएक्सएक्स नंबर डेवलपर्स द्वारा जीरा (एक अन्य उपकरण जिसे हम विकास प्रक्रिया को ट्रैक करने के लिए उपयोग करते हैं) में विश्लेषकों द्वारा सौंपा गया है।

सुनिश्चित करें कि आपकी कंपनी के पास एक समान बाध्य नियम है या नहीं, इसकी जांच करें।


0

मैं विंडोज 10 मशीन पर एक ही मुद्दा writing objectsथा, लटका हुआ था, लेकिन थोड़ी अलग स्थिति में।

मेरे पास समस्या केवल तब थी जब मैं रिपॉजिटरी में नई फाइलें जोड़ने की कोशिश कर रहा था। अगर मैं उन फाइलों को अपडेट करता हूं जो पहले से ही रिपॉजिटरी में मौजूद हैं, तो यह ठीक काम कर रहा था और यह वास्तव में मायने नहीं रखता कि फाइल का आकार बड़ा था या नहीं। ज्यादातर मैं नई स्क्रिप्ट जोड़ने की कोशिश कर रहा था।

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

attrib -r +s D:\foldername 

मेरे लिए मुद्दा तय किया।

बस इसे यहां पोस्ट करना, शायद किसी के पास मेरा एक ही मुद्दा है।

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