DevOps बूटकैंप · पाठ

रिपॉज़िटरी रखरखाव और सफ़ाई

अपनी स्थानीय Git रिपॉज़िटरी को साफ़ और अनुकूलित करने के लिए `git gc` और `git prune` जैसे कमांड्स सीखिए।

पाठ 3, कुल 4 में से11 चरण

रिपॉज़िटरी रखरखाव और सफ़ाई, CoddyKit पर DevOps बूटकैंप का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह DevOps बूटकैंप सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। DevOps बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

Git रखरखाव में आपका स्वागत है

समय के साथ आपकी स्थानीय Git रिपॉज़िटरी में अनावश्यक फ़ाइलें जमा हो सकती हैं और उसकी कार्यक्षमता कम हो सकती है। इसे एक अस्त-व्यस्त कमरे जैसा समझिए!

इस पाठ में हम git gc और git prune जैसे शक्तिशाली कमांड का उपयोग करके अपनी Git रिपॉज़िटरी को साफ़ और अनुकूलित करना सीखेंगे। इससे आपके प्रोजेक्ट सुचारु रूप से चलते रहेंगे।

Git के ऑब्जेक्ट स्टोर को समझना

पहले समझते हैं कि Git डेटा कैसे संग्रहीत करता है। Git आपके प्रोजेक्ट का इतिहास 'ऑब्जेक्ट' की एक श्रृंखला के रूप में सहेजता है:

  • ब्लॉब: फ़ाइल की सामग्री
  • ट्री: निर्देशिकाएँ और उनकी सामग्री
  • कमिट: किसी समय-बिंदु पर आपके प्रोजेक्ट के स्नैपशॉट
  • टैग: विशिष्ट कमिट की ओर संकेतक

दक्षता के लिए इन ऑब्जेक्ट को 'लूज़ ऑब्जेक्ट' के रूप में संग्रहीत किया जा सकता है या 'पैकफ़ाइल' में संपीड़ित किया जा सकता है।

`git gc` का परिचय (कचरा संग्रह)

git gc कमांड का अर्थ 'कचरा संग्रह' है। यह आपकी रिपॉज़िटरी की सफ़ाई और अनुकूलन के लिए Git का अंतर्निहित उपकरण है।

इसके मुख्य कार्यों में शामिल हैं:

  • लूज़ ऑब्जेक्ट को पैक करना: अलग-अलग ऑब्जेक्ट को एकल पैकफ़ाइल में संपीड़ित करना।
  • पहुंच से बाहर ऑब्जेक्ट को हटाना: उन ऑब्जेक्ट को हटाना जिनका किसी कमिट, शाखा या टैग द्वारा अब संदर्भ नहीं दिया जाता (एक निश्चित अवधि के बाद)।
  • पुरानी पैकफ़ाइल हटाना: पुराने संपीड़ित ऑब्जेक्ट फ़ाइलों को हटाना।

यह प्रक्रिया आपकी रिपॉज़िटरी को छोटा और तेज़ बनाती है।

`git gc` चलाना (सामान्य उपयोग)

आप किसी भी समय git gc को मैन्युअल रूप से चला सकते हैं। Git कुछ क्रियाएँ, जैसे पुश या फ़ेच, करने पर इसे पृष्ठभूमि में अपने-आप भी चलाता है।

इसे चलाना आम तौर पर सुरक्षित है, लेकिन किसी बड़े रखरखाव से पहले यह सुनिश्चित करना अच्छा अभ्यास है कि आपके पास ऐसा कोई अप्रतिबद्ध काम न हो जिसे आपको पुनर्प्राप्त करना पड़ सकता है।

इसे अपने टर्मिनल में चलाकर देखें:

git gc

`git gc` के आउटपुट को समझना

जब आप git gc चलाएँगे, तो आपको इसके जैसा आउटपुट दिखाई देगा:

Counting objects: 1234, done. Compressing objects: 100% (987/987), done. Writing objects: 100% (1234/1234), done. Total 1234 (delta 567), reused 0 (delta 0) Removing duplicate objects: 100% (256/256), done. Pruning objects: 100% (123/123), done.

यह दिखाता है कि Git ऑब्जेक्ट को पैक करने, नई पैकफ़ाइल लिखने और पुराने, पहुंच से बाहर ऑब्जेक्ट को हटाने पर काम कर रहा है। संख्याएँ आपकी रिपॉज़िटरी की स्थिति के अनुसार अलग-अलग होंगी।

`git prune` पर ध्यान दें

जहाँ git gc सफ़ाई से जुड़े कई कार्य संभालता है, वहीं git prune विशेष रूप से 'लटकी हुई' या 'अप्राप्य' वस्तुओं को हटाने का काम करता है।

  • लटकी हुई वस्तुएँ: ये ऐसी वस्तुएँ हैं जो आपकी रिपॉज़िटरी में मौजूद हैं, लेकिन अब किसी कमिट, शाखा या टैग द्वारा संदर्भित नहीं हैं और किसी पैक फ़ाइल का भी हिस्सा नहीं हैं।
  • अप्राप्य वस्तुएँ: यह लटकी हुई वस्तुओं जैसा ही, लेकिन अधिक व्यापक शब्द है। ये कई कारणों से मौजूद हो सकती हैं, जैसे इतिहास को फिर से लिखने वाले रीबेस या रीसेट के बाद।

git prune इन वस्तुओं को तब हटा देता है, जब वे डिफ़ॉल्ट समाप्ति अवधि से पुरानी हों (आमतौर पर 2 सप्ताह)।

`git prune` को सीधे चलाना

आमतौर पर आपको git prune को सीधे चलाने की आवश्यकता नहीं होती, क्योंकि git gc इसे चलाता है। फिर भी, अधिक लक्षित सफ़ाई के लिए आप इसका उपयोग कर सकते हैं।

यह देखने के लिए कि कुछ भी वास्तव में हटाए बिना git prune क्या करेगा, --dry-run विकल्प का उपयोग करें:

git prune --dry-run

समाप्ति अवधि के साथ सफ़ाई

डिफ़ॉल्ट रूप से, git prune (और git gc का सफ़ाई चरण) केवल उन वस्तुओं को हटाता है जो दो सप्ताह से पुरानी हों। आप --expire विकल्प का उपयोग करके इसे बदल सकते हैं।

यह तब उपयोगी है, जब आप हाल ही में बनाई गई लटकी हुई वस्तुओं को भी आक्रामक रूप से साफ़ करना चाहते हों, जैसे किसी ऐसे प्रयोगात्मक रीबेस के बाद जिसे वापस करने की आपको आवश्यकता न होने का पूरा विश्वास हो।

उदाहरण के लिए, 1 दिन से पुरानी वस्तुओं को साफ़ करने के लिए:

git prune --expire=1.day

`git reflog expire` से अंतर समझना

git prune को git reflog expire के साथ भ्रमित न करना महत्वपूर्ण है। सफ़ाई से संबंधित होने के बावजूद, दोनों के उद्देश्य अलग-अलग हैं:

  • git prune: ऑब्जेक्ट डेटाबेस से वास्तविक Git वस्तुओं (ब्लॉब, ट्री और कमिट) को हटाता है।
  • git reflog expire: आपके reflog (आपका HEAD कहाँ-कहाँ रहा है, उसका स्थानीय इतिहास) की प्रविष्टियों को साफ़ करता है। इससे कुछ कमिट ढूँढ़ना कठिन हो जाता है, लेकिन वस्तुएँ स्वयं हटती नहीं हैं।

इतिहास में बदलाव करते समय या सफ़ाई के आदेश चलाते समय हमेशा सावधान रहें!

हाउसकीपिंग जाँच

निम्नलिखित में से कौन-सा विकल्प git gc की प्राथमिक भूमिका का सबसे अच्छा वर्णन करता है?

पुनरावलोकन और अगले चरण

बधाई हो! आपने अपनी Git रिपॉज़िटरी को व्यवस्थित और कार्यकुशल रखना सीख लिया है।

  • git gc: कचरा-संग्रह, वस्तुओं को पैक करने और सफ़ाई के लिए एकीकृत आदेश।
  • git prune: निश्चित समाप्ति अवधि से पुरानी अप्राप्य और लटकी हुई वस्तुओं को विशेष रूप से ढूँढ़कर हटाता है।

नियमित रखरखाव से आपका Git कार्यप्रवाह सुचारु बना रहता है और आपकी रिपॉज़िटरी अनावश्यक डिस्क स्थान नहीं घेरती। इसी तरह अच्छा काम करते रहें!

शुरुआत निःशुल्क

एआई शिक्षक के साथ DevOps बूटकैंप सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
142
पाठ
568

अक्सर पूछे जाने वाले प्रश्न

क्या “रिपॉज़िटरी रखरखाव और सफ़ाई” पाठ निःशुल्क है?

हाँ — DevOps बूटकैंप अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “रिपॉज़िटरी रखरखाव और सफ़ाई” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। DevOps बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“रिपॉज़िटरी रखरखाव और सफ़ाई” में मैं क्या सीखूँगा?

अपनी स्थानीय Git रिपॉज़िटरी को साफ़ और अनुकूलित करने के लिए `git gc` और `git prune` जैसे कमांड्स सीखिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ DevOps बूटकैंप का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या DevOps बूटकैंप शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर DevOps बूटकैंप शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“रिपॉज़िटरी रखरखाव और सफ़ाई” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस DevOps बूटकैंप पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर DevOps बूटकैंप पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Git Reflog और इतिहास की पुनर्प्राप्ति
  2. डीबगिंग के लिए Git Bisect
  3. रिपॉज़िटरी रखरखाव और सफ़ाई
  4. git filter-repo से इतिहास का पुनर्लेखन
← DevOps बूटकैंप पर वापस जाएँ