2009-09-30 11 views
21

किसी ने पहले ही पूछा है कि आप सिमलिंक का पालन करने के लिए गिट कैसे प्राप्त कर सकते हैं। एक सिम्लिंक निर्देशिका के लिए एक उत्तर था, लेकिन एक सिम्लिंक फ़ाइल के लिए नहीं। यह एक साल पहले भी था।सिमलिंक का पालन करने के लिए गिट प्राप्त करना (दोबारा)

प्रश्न: आप सिमलिंक का पालन करने के लिए गिट कैसे प्राप्त करते हैं और फ़ाइल को संदर्भित करते हैं?

यहां पुराना प्रश्न है: How can I get git to follow symlinks?। इस बारे में भी एक सवाल है कि गिट आमतौर पर How does git handle symbolic links? करता है। मैं इस व्यवहार को बदलने के तरीके के बाद हूं।

यदि आप परवाह करते हैं: मैं मैक पर यूनिक्स और गिट संस्करण 1.6.0 पर गिट 1.5.4.3 चला रहा हूं।

उत्तर

22

मुझे पूरा यकीन है कि कोई रास्ता नहीं है।

इसके अतिरिक्त, यह एक प्रकार की असुरक्षित, अपरिभाषित व्यवहार की तरह लगता है - जब आप फ़ाइल के संस्करणों के बीच जाते हैं तो इसे क्या करना चाहिए और इसे लिखने की आवश्यकता है? विशेष रूप से, यदि आप इसे जोड़ने से पहले एक संशोधन की जांच करते हैं, तो क्या आप वास्तव में इसे भंडार के बाहर फ़ाइल की सामग्री को हटाना चाहते हैं? क्या होता है यदि आप उपस्थित होने के लिए वापस आते हैं और फ़ाइल को फिर से बनाते हैं, या यदि सिम्लिंक स्वयं संशोधित होता है - क्या गिट को सिमलिंक को भी ट्रैक करना चाहिए?

इन पंक्तियों के साथ चीजें पिछले वर्ष के अंत में said on the git mailing list थीं जो अनिवार्य रूप से एक ही प्रश्न के जवाब में थीं।

+0

ये कुछ उत्कृष्ट अंक हैं - धन्यवाद। – Peter

+1

हाँ, दुर्भाग्य से। मुझे पता है कि कुछ मामलों में लिंक का पालन करना वास्तव में अच्छा होगा। वहाँ एक उत्तर में एक दृष्टिकोण में सुझाव दिया गया था - बाहरी-द-रेपो फ़ाइलों को रेपो में सिम्लिंक बनाते हैं, और संभवत: अभी भी रेपो के भीतर से सिम्लिंक शामिल हैं। आशा है कि आपको वह करने का तरीका मिलेगा जो आपको चाहिए! – Cascabel

6

कितना मुश्किल लिंक का उपयोग कर के बारे में है, तो Git पता नहीं इसकी एक लिंक की गई फ़ाइल (यह क्या है?)

11

आप softlinks (यानी सिमलिंक) के बजाय hardlinks का उपयोग कर सकते है। गिट तब लिंक की गई फाइल की सामग्री देखेगा। नुकसान यह है कि जब कोई चेक आउट करता है, तो फ़ाइल चेक-आउट निर्देशिका में सामान्य फ़ाइल के रूप में बनाई जाती है, क्योंकि गिट इसे एक लिंक के रूप में नहीं समझता है।

2

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

संबंधित मुद्दे