अपने Mac पर मौजूदा स्पार्स चेकआउट (sparse checkout) में एक डायरेक्टरी जोड़ने के लिए, Terminal खोलें, रिपॉजिटरी रूट पर जाएं, और git sparse-checkout add 'path/to/directory' चलाएं। Git उस डायरेक्टरी के अंतर्गत ट्रैक की गई फ़ाइलों को वर्किंग ट्री में उपलब्ध कराता है, जबकि अन्य स्पार्स-चेकआउट चयनों को बनाए रखता है। यदि रिपॉजिटरी पहले से स्पार्स नहीं है, तो कोन मोड (cone mode) सक्षम करने और डायरेक्टरी चुनने के लिए git sparse-checkout set --cone 'path/to/directory' का उपयोग करें; यह चयन सेट करता है, इसलिए यह वर्किंग ट्री से अन्य ट्रैक की गई फ़ाइलों को हटा सकता है।
कमांड चलाने से पहले
स्पार्स चेकआउट यह बदलता है कि रिपॉजिटरी के वर्किंग ट्री में कौन सी ट्रैक की गई फ़ाइलें दिखाई देती हैं। चयनित क्षेत्र के बाहर की फ़ाइलें Git द्वारा ट्रैक की जाती रहती हैं; वे रिपॉजिटरी के इतिहास से हटाई नहीं जाती हैं। डिफ़ॉल्ट कोन मोड में, Git चयनित डायरेक्टरी के तहत सब कुछ शामिल करता है, साथ ही सीधे उसकी पैरेंट डायरेक्टरीज़ और रिपॉजिटरी रूट के अंदर की फ़ाइलों को भी शामिल करता है। इसका मतलब है कि नेस्टेड डायरेक्टरी जोड़ने से आस-पास की टॉप-लेवल या पैरेंट-लेवल की फ़ाइलें भी दिखाई दे सकती हैं। Git की sparse-checkout नियमावली
Terminal खोलें और जांचें कि Git उपलब्ध है, फिर रिपॉजिटरी में जाएं। उदाहरण के लिए, सैंपल पाथ को अपने चेकआउट के स्थान से बदलें:
git --version
cd "$HOME/Projects/sample-repo"
git status --short
बिना Git कमांड-लाइन टूल्स इंस्टॉल किए Mac पर, git इनवोक करने पर आपको Apple के Command Line Tools इंस्टॉल करने का संकेत मिल सकता है। macOS प्रॉम्प्ट का पालन करें, फिर दोबारा git --version चलाएं। Apple: Command Line Tools इंस्टॉल करना
स्पार्स चयन बदलने से पहले स्थानीय बदलावों की जांच करने के लिए git status --short का उपयोग करें। महत्वपूर्ण अनकमिटेड (uncommitted) या अनट्रैक्ड (untracked) काम को सुरक्षित रखें, विशेषकर यदि वह ऐसी डायरेक्टरी के अंदर है जो बाहर की जा सकती है। रिपॉजिटरी के अंदर से स्पार्स-चेकआउट कमांड चलाएं, और इसके रूट के सापेक्ष पाथ का उपयोग करें। रिक्त स्थान (spaces) या शेल मेटाकैरेक्टर वाले पाथ को कोट्स (quotes) में रखें, जैसा कि उदाहरणों में है, ताकि zsh या bash उस पाथ को Git को एक तर्क (argument) के रूप में पास करे।
मौजूदा स्पार्स चेकआउट में एक डायरेक्टरी जोड़ें
यदि स्पार्स चेकआउट पहले से सक्षम है, तो डायरेक्टरी को इससे जोड़ें:
git sparse-checkout add 'Packages/Map View'
Packages/Map View को डायरेक्टरी पाथ से बदलें जैसा कि वह रिपॉजिटरी में दिखाई देता है। कोन मोड में, यह अन्य चयनित डायरेक्टरीज़ को बदलने के बजाय उस डायरेक्टरी को वर्तमान चयन में जोड़ता है। Git दस्तावेज़ों के अनुसार add के लिए मौजूदा स्पार्स चेकआउट की आवश्यकता होती है; यह चयन और वर्किंग ट्री को अपडेट करता है। Git sparse-checkout कमांड संदर्भ
बाद में चयनित डायरेक्टरीज़ का निरीक्षण करने के लिए, चलाएं:
git sparse-checkout list
git status --short
यह सूची स्पार्स-चेकआउट डायरेक्टरीज़ को दर्शाती है। Status आपको यह देखने में मदद करता है कि ट्रैक की गई या अनट्रैक की गई फ़ाइलें संशोधित हैं या नहीं; यह छोड़ी गई ट्रैक की गई फ़ाइलों को केवल इसलिए डिलीटेड के रूप में प्रदर्शित नहीं करता क्योंकि वे स्पार्स चयन से बाहर हैं।
यदि यह एक सामान्य चेकआउट है
एक पूर्ण चेकआउट (full checkout) के लिए जिसे आप किसी चुनी हुई डायरेक्टरी वाले स्पार्स चेकआउट में बदलना चाहते हैं, set का उपयोग करें:
git sparse-checkout set --cone 'Packages/Map View'
set आपके द्वारा प्रदान किए गए पाथ से स्पार्स चयन स्थापित करता है। यह एक सामान्य पूर्ण चेकआउट की अन्य डायरेक्टरीज़ को अतिरिक्त चयन के रूप में सुरक्षित नहीं रखता है। यदि आपको कई डायरेक्टरीज़ की आवश्यकता है, तो प्रत्येक को एक ही कमांड में शामिल करें, उदाहरण के लिए git sparse-checkout set --cone 'Packages/Map View' 'Docs'। Git sparse-checkout कमांड संदर्भ
चयन बदलने से वर्किंग ट्री से फ़ाइलें हट सकती हैं। Git के दस्तावेज़ यह भी बताते हैं कि कोन-मोड चयनों को बदलते समय यह उन डायरेक्टरीज़ में इग्नोर की गई फ़ाइलों को हटा सकता है जिनमें अब ट्रैक की गई या गैर-इग्नोर की गई अनट्रैक फ़ाइलें नहीं हैं। set चलाने से पहले अपने स्टेटस की जांच करें और अपनी ज़रूरत की किसी भी स्थानीय फ़ाइल को सुरक्षित रखें; यदि Git चेतावनी देता है कि अनट्रैक की गई फ़ाइलें क्लीनअप को रोकती हैं, तो उन्हें जबरन हटाने के बजाय उन फ़ाइलों का निरीक्षण करें। Git की sparse-checkout नियमावली
यदि Git कोई समस्या रिपोर्ट करता है
यदि git sparse-checkout add कहता है कि रिपॉजिटरी स्पार्स चेकआउट में नहीं है, तो चुनें कि क्या आप वर्किंग ट्री को सीमित करना चाहते हैं। ऐसा करने के लिए, ऊपर दिए गए set --cone कमांड का उपयोग करें। यदि आपका इरादा सभी वर्तमान डायरेक्टरीज़ को बनाए रखने और केवल एक को जोड़ने का था, तो पहले उन डायरेक्टरीज़ की पहचान करें जिन्हें आप बनाए रखना चाहते हैं, फिर उन सभी को और नई डायरेक्टरी को एक साथ set --cone में पास करें।
यदि कोई पाथ जोड़ने के बाद मौजूद नहीं है, तो रिपॉजिटरी के ट्रैक किए गए पाथ के विरुद्ध वर्तनी और कैपिटलाइज़ेशन की पुष्टि करें, और जांचें कि क्या यह वर्तमान ब्रांच पर मौजूद है। स्पार्स चेकआउट ट्रैक किए गए पाथ का चयन करता है; यह अपने आप कोई गायब डायरेक्टरी नहीं बनाता है या सबमॉड्यूल को इनिशियलाइज़ नहीं करता है। Git सबमॉड्यूल इनिशियलाइज़ेशन को एक अलग ऑपरेशन के रूप में दस्तावेज़ित करता है। Git की sparse-checkout नियमावली
स्पार्स चेकआउट यह नियंत्रित करता है कि Git वर्किंग ट्री में कौन सी फ़ाइलें रखता है; यह केवल एक डायरेक्टरी को क्लोन करने या रिपॉजिटरी से अन्य डायरेक्टरीज़ को हटाने जैसा नहीं है। सर्वर से डाउनलोड किए गए ऑब्जेक्ट्स को सीमित करने के लिए Git अलग आंशिक-क्लोन (partial-clone) फ़िल्टर का समर्थन करता है, लेकिन उपलब्धता और प्रभाव क्लोन और सर्वर कॉन्फ़िगरेशन पर निर्भर करते हैं। git clone --sparse विकल्प टॉप-लेवल फ़ाइलों के साथ शुरू होता है और एक नए क्लोन के लिए एक अन्य वर्कफ़्लो है। Git clone दस्तावेज़