प्रश्न का उत्तर देने के लिए: यदि आप किसी चेकआउट की कुछ फ़ाइलों को बाहर करना चाहते हैं, तो आप स्पार्स-चेकआउट का उपयोग कर सकते हैं
1) में .git/info/sparse-checkout, परिभाषित करें कि आप क्या रखना चाहते हैं। यहां, हम सभी (*) चाहते हैं, लेकिन (विस्मयादिबोधक चिह्न पर ध्यान दें) config.php:
/*
!/config.php
2) बता दें कि आप स्पार्स-चेकआउट को ध्यान में रखना चाहते हैं
git config core.sparseCheckout true
3) यदि आपको पहले से ही यह फ़ाइल स्थानीय रूप से मिल गई है, तो वह करें जो एक विरल चेकआउट पर करता है (यह बताएं कि उस पर "स्किप-वर्कट्री" ध्वज सेट करके इस फ़ाइल को बाहर करना होगा)
git update-index --skip-worktree config.php
4) एक रिपॉजिटरी का आनंद लें जहां आपकी config.php फ़ाइल आपकी है - रिपॉजिटरी में जो भी बदलाव हैं।
कृपया ध्यान दें कि कॉन्फ़िगरेशन मान SHOULDN'T स्रोत नियंत्रण में होगा:
- यह संभावित सुरक्षा उल्लंघन है
- यह तैनाती के लिए इस तरह की समस्याओं का कारण बनता है
इसका मतलब है कि आपको उन्हें बाहर करना होगा (उन्हें पहले प्रतिबद्ध करने के लिए .itignore में डाल दें), और प्रत्येक उदाहरण पर उपयुक्त फ़ाइल बनाएं जहां आप अपने ऐप को चेकआउट करते हैं ("टेम्पलेट" फ़ाइल को कॉपी और एडैप करके)
ध्यान दें कि, एक बार फाइल को git द्वारा चार्ज करने के बाद, .ignignore पर कोई प्रभाव नहीं पड़ेगा।
यह देखते हुए कि एक बार फ़ाइल स्रोत नियंत्रण में होने के बाद, आपके पास केवल दो विकल्प होते हैं (): - फ़ाइल को निकालने के लिए अपने सभी इतिहास को फिर से सेट करें (साथ में git filter-branch) - फ़ाइल को निकालने वाली एक कमिट बनाएँ। यह एक हारने वाली लड़ाई लड़ने जैसा है, लेकिन, ठीक है, कभी-कभी आपको उसी के साथ रहना पड़ता है।
config.phpप्रतिबद्ध हैं?