गिट गुई: वर्तमान में "इस भंडार में वर्तमान में लगभग 320 ढीली वस्तुएं हैं।"


89

हर बार जब मैं किसी विशेष प्रोजेक्ट पर Git Gui शुरू करता हूं तो मुझे यह संदेश मिलता है:

इस भंडार में वर्तमान में लगभग 320 ढीली वस्तुएं हैं।

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

मैं तब हाँ क्लिक करने के लिए आगे बढ़ता हूं , और मुझे यह संवाद मिलता है:

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

बात यह है, जब मैं गिट गुई को फिर से खोलता हूं, तो मुझे सटीक वही संदेश मिलता है , फिर से लगभग 320 ढीली वस्तुएं! यह ऐसा है जैसे कि हाँ पर क्लिक करने का कोई प्रभाव नहीं पड़ा।


आप के उत्पादन पोस्ट कर सकते हैं git count-objects -v?
सीबी बेली


5
@ TheCodeArtist धन्यवाद, मुझे वहाँ जवाब मिला। इस टिप्पणी केgit gc अनुसार, कमांड लाइन से स्पष्ट रूप से चलना मेरे लिए काम करता है ।
शशोअल्म

जवाबों:


80

बस पॉप को स्किप करते हुए, जैसे कि "गिट गिनी" को चलाने के दौरान "लूज़ ऑब्जेक्ट" पॉपअप को कैसे छोड़ना है, स्वीकृत उत्तर में सुझाव देता है कि इस तथ्य को ध्यान में रखते हुए कि Git आपके लिए एक संभावित प्रदर्शन समस्या का संचार कर रहा है। कमांड लाइन से इस कमांड को चलाकर इसे ठीक किया जाना चाहिए:

cd path/to/your/git/repo
git gc --aggressive

के उत्पादन से git help gc:

वर्तमान रिपॉजिटरी के भीतर कई हाउसकीपिंग कार्यों को चलाता है, जैसे फ़ाइल रिविजन (डिस्क स्थान को कम करने और प्रदर्शन को बढ़ाने के लिए) और अप्राप्य वस्तुओं को हटाने के लिए जो कि गिट ऐड के पूर्व चालान से बनाए गए हो सकते हैं।

उपयोगकर्ताओं को अच्छा डिस्क स्थान उपयोग और अच्छा ऑपरेटिंग प्रदर्शन बनाए रखने के लिए प्रत्येक रिपॉजिटरी के भीतर नियमित रूप से इस कार्य को चलाने के लिए प्रोत्साहित किया जाता है।

--aggressive

आमतौर पर git gc बहुत जल्दी चलता है जबकि अच्छा डिस्क स्थान उपयोग और प्रदर्शन प्रदान करता है। यह विकल्प अधिक समय लेने की कीमत पर रिपॉजिटरी को अधिक आक्रामक तरीके से अनुकूलित करने के लिए git gc का कारण बनेगा। इस अनुकूलन के प्रभाव लगातार हैं, इसलिए इस विकल्प को केवल कभी-कभी उपयोग करने की आवश्यकता होती है; हर कुछ सौ परिवर्तन या तो।

यह कुछ समय के लिए पॉपिंग से संकेत रखना चाहिए।


19
क्या अजीब बात है कि बस git gcकमांड लाइन से चलने ने इसे मेरे लिए तय किया। मई git guiकुछ हो सकता है git gc --extra-unaggressive:)
sashoalm

38
git pruneलगता है जब इसे ठीक करने के लिए git gcनहीं है।
महन

1
आप आम तौर पर साथ नहीं चलना चाहते हैं --aggressive; यह gitपुनरावृत्ति के कारण होता है जो आमतौर पर अनुत्पादक और बहुत समय लेने वाला होता है; इस पोस्ट को देखें - manपृष्ठ भ्रामक है। संभवतः git gcइस मामले में सिर्फ सादा पर्याप्त है।
जेफ क्लिट्स

16
--prune=allसंदेश से छुटकारा पाने के लिए उपयोग करना था । न तो git gcकमांड लाइन पर और न ही विकल्प --aggressiveया --pruneचाल में।
दाऊ

1
@JeffClites आप जिस लेख का उल्लेख करते हैं, वह (इस तिथि के अनुसार) 11 साल पुराना है, और कहता है "इस कारण से - प्रगतिशील को संभवतः मैनपेज़ से हटा दिया जाएगा और थोड़ी देर के लिए एक अनैच्छिक सुविधा के रूप में छोड़ दिया जाएगा।" आगे खुदाई किए बिना, यह अजीब लगता है कि टूटा हुआ संदेश अभी भी है। क्या ऐसा मौका है कि लेख को लिखे गए व्यवहार को संशोधित किया गया है?
पाइप

3

मैं कमांड का उपयोग करता हूं:

git gc --prune = अब

और कोई बहुत अधिक ढीली वस्तु चेतावनी के बाद किया।

संदर्भ का स्रोत: https://git-scm.com/docs/git-gc


1
कहना है कि यह मेरे लिए काम किया समाधान था। अजीब तरह से, git gc --aggressiveचेतावनी को नहीं हटाया (और न ही यूआई पर क्लिक किया, जो एक साधारण प्रदर्शन करता है git gc)।
सेराफिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.