Git उन्नत: मोनोरेपो, सबमॉड्यूल और कार्यप्रवाह · पाठ

Git रिपॉज़िटरी के प्रदर्शन का अनुकूलन

Git रिपॉज़िटरी के प्रदर्शन और आकार को बेहतर बनाने के लिए गार्बेज कलेक्शन, पैक फ़ाइलों और शैलो क्लोन जैसी तकनीकें सीखें।

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

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

अपने Git के प्रदर्शन को बेहतर बनाएँ

क्या आपने कभी देखा है कि आपका Git भंडार धीमा हो गया है? बड़े भंडार, विशेष रूप से वे जिनमें बहुत-सी फ़ाइलें, लंबा इतिहास या बाइनरी परिसंपत्तियाँ हों, सुस्त हो सकते हैं।

इस पाठ में हम कचरा संग्रहण, पैक फ़ाइलों और उथली क्लोन जैसी तकनीकों का उपयोग करके अपने Git भंडार के प्रदर्शन को अनुकूलित करना और उसका आकार घटाना सीखेंगे।

Git का ऑब्जेक्ट संग्रहण

जब आप बदलाव कमिट करते हैं, तो Git आपके डेटा को ऑब्जेक्ट के रूप में संग्रहित करता है। शुरुआत में इन्हें अलग-अलग ऑब्जेक्ट के रूप में .git/objects निर्देशिका में रखा जाता है।

यह सरल तरीका है, लेकिन बहुत-से छोटे अलग-अलग ऑब्जेक्ट संग्रहित करना अक्षम हो सकता है। इससे डिस्क स्थान का उपयोग बढ़ता है और संचालन धीमा हो जाता है, क्योंकि Git को कई अलग-अलग फ़ाइलें पढ़नी पड़ती हैं।

पैक फ़ाइलों का परिचय

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

इस पैकिंग प्रक्रिया में डेल्टा संपीड़न का उपयोग होता है। इसमें समान ऑब्जेक्ट के बीच केवल अंतर संग्रहित किए जाते हैं, जिससे डिस्क स्थान काफी कम लगता है और डेटा प्राप्त करना तेज़ हो जाता है।

स्वचालित कचरा संग्रहण

Git में कचरा संग्रहण (GC) नामक एक अंतर्निर्मित तंत्र है, जो पृष्ठभूमि में अपने-आप चलता है। यह अनावश्यक ऑब्जेक्ट साफ़ करता है और अलग-अलग ऑब्जेक्ट को पैक फ़ाइलों में पैक करता है।

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

मैन्युअल कचरा संग्रहण: `git gc`

आप git gc कमांड का उपयोग करके किसी भी समय कचरा संग्रहण को मैन्युअल रूप से शुरू कर सकते हैं। यह तब उपयोगी है जब आपको लगता है कि आपका भंडार अनावश्यक रूप से बड़ा हो गया है या स्वचालित GC हाल में नहीं चला है।

git gc चलाने पर अलग-अलग ऑब्जेक्ट पैक किए जाएँगे, अप्राप्य ऑब्जेक्ट हटाए जाएँगे और भंडार की आंतरिक संरचना अनुकूलित की जाएगी।

git gc

`git gc` के साथ `--prune`

git gc के साथ --prune विकल्प से आप निर्धारित कर सकते हैं कि अप्राप्य ऑब्जेक्ट हटाए जाने से पहले कितने पुराने होने चाहिए। डिफ़ॉल्ट रूप से Git 2 सप्ताह से पुराने ऑब्जेक्ट हटाता है।

सभी अप्राप्य ऑब्जेक्ट तुरंत हटाने के लिए आप --prune=now का उपयोग कर सकते हैं। सावधान रहें, क्योंकि बहुत आक्रामक तरीके से हटाने पर वह डेटा भी मिट सकता है जिसे reflog के माध्यम से अभी पुनर्प्राप्त किया जा सकता है।

git gc --prune=now

GC व्यवहार को कॉन्फ़िगर करना

आप कॉन्फ़िगरेशन सेटिंग का उपयोग करके Git के स्वचालित कचरा संग्रहण व्यवहार को बारीकी से समायोजित कर सकते हैं। ये सेटिंग अक्सर वैश्विक स्तर पर या प्रति-भंडार निर्धारित की जाती हैं।

  • gc.auto: अलग-अलग ऑब्जेक्ट की वह संख्या जो स्वचालित GC शुरू करती है।
  • gc.autopacklimit: पैक फ़ाइलों की वह संख्या जो स्वचालित पैकिंग शुरू करती है।

उदाहरण के लिए, स्वचालित GC की सीमा बदलने के लिए:

git config --global gc.auto 5000
# Default is 6700

उथली क्लोन को समझना

बहुत बड़े भंडारों के लिए पूरा इतिहास प्राप्त करने में काफी समय लग सकता है और बहुत-सा डिस्क स्थान खर्च हो सकता है। उथली क्लोन इस समस्या में मदद करती है।

उथली क्लोन पूरे इतिहास के बजाय केवल हाल के कमिट की निर्धारित संख्या डाउनलोड करती है। इससे शुरुआती क्लोन प्रक्रिया बहुत तेज़ और स्थानीय भंडार बहुत छोटा हो जाता है।

उथली क्लोन बनाना

उथली क्लोन बनाने के लिए git clone के साथ --depth विकल्प का उपयोग करें और प्राप्त किए जाने वाले कमिट की संख्या निर्दिष्ट करें।

यह CI/CD पाइपलाइन में या तब बेहद उपयोगी है जब आपको पूरे इतिहास के बिना केवल परियोजना के नवीनतम संस्करण पर काम करना हो।

git clone --depth 1 https://github.com/user/repo.git

उथली क्लोन को गहरा करना

यदि बाद में आपको उथली क्लोन से अधिक इतिहास चाहिए तो क्या होगा? अतिरिक्त कमिट प्राप्त करने के लिए आप git fetch --depth का उपयोग करके इसे गहरा कर सकते हैं।

इससे आप शुरुआत उथली क्लोन से कर सकते हैं और आवश्यकता पड़ने पर धीरे-धीरे अधिक इतिहास प्राप्त कर सकते हैं, जिससे प्रदर्शन का लाभ बना रहता है।

git fetch --depth 50
# Fetches 50 more commits into history

त्वरित जाँच

कचरा संग्रहण और उथली क्लोन बेहतर प्रदर्शन के लिए महत्वपूर्ण हैं। आइए अपनी समझ की जाँच करें।

पुनरावलोकन: अनुकूलित Git

बहुत अच्छा! आपने अपने Git भंडार को छोटा और तेज़ रखना सीख लिया है।

  • कचरा संग्रहण (GC) अलग-अलग ऑब्जेक्ट को कुशल पैक फ़ाइलों में पैक करता है।
  • आप git gc को मैन्युअल रूप से चला सकते हैं या उसके स्वचालित व्यवहार को कॉन्फ़िगर कर सकते हैं।
  • उथली क्लोन (git clone --depth) इतिहास सीमित करके शुरुआती प्राप्ति को तेज़ करती हैं।
  • आप git fetch --depth से उथली क्लोन को गहरा कर सकते हैं।

बड़ी परियोजनाओं को सँभालने और सुचारु कार्यप्रवाह बनाए रखने के लिए ये तकनीकें बहुत महत्वपूर्ण हैं।

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

एआई शिक्षक के साथ Git उन्नत: मोनोरेपो, सबमॉड्यूल और कार्यप्रवाह सीखें — निःशुल्क

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

पाठ्यक्रम
12
पाठ
48

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

क्या “Git रिपॉज़िटरी के प्रदर्शन का अनुकूलन” पाठ निःशुल्क है?

हाँ—“Git रिपॉज़िटरी के प्रदर्शन का अनुकूलन” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Git उन्नत: मोनोरेपो, सबमॉड्यूल और कार्यप्रवाह पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Git उन्नत: मोनोरेपो, सबमॉड्यूल और कार्यप्रवाह पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Git रिपॉज़िटरी के प्रदर्शन का अनुकूलन” में मैं क्या सीखूँगा?

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

क्या Git उन्नत: मोनोरेपो, सबमॉड्यूल और कार्यप्रवाह शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

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

“Git रिपॉज़िटरी के प्रदर्शन का अनुकूलन” पाठ पूरा करने में कितना समय लगता है?

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

क्या मैं इस Git उन्नत: मोनोरेपो, सबमॉड्यूल और कार्यप्रवाह पाठ में कोड लिख और चला सकता हूँ?

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

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

  1. खोई हुई कमिट और शाखाओं की पुनर्प्राप्ति
  2. Git Bisect से दोष-निवारण
  3. Git रिपॉज़िटरी के प्रदर्शन का अनुकूलन
  4. रीफ़्लॉग और स्टैश से काम बचाना
← Git उन्नत: मोनोरेपो, सबमॉड्यूल और कार्यप्रवाह पर वापस जाएँ