मैं स्टैक ओवरफ़्लो के साथ ही अलग-अलग सवाल और जवाब का एक बहुत पढ़ा है Git कैसे पर प्रलेखन core.autocrlf सेटिंग काम करता है।
यह मेरी समझ है कि मैंने क्या पढ़ा है:
यूनिक्स और मैक ओएसएक्स (प्री-ओएसएक्स सीआर का उपयोग करता है) क्लाइंट एलएफ लाइन एंडिंग का उपयोग करते हैं।
विंडोज क्लाइंट CRLF लाइन एंडिंग्स का उपयोग करते हैं।
जब core.autocrlf क्लाइंट पर सच में सेट हो जाता है, तो git रिपॉजिटरी हमेशा LF लाइन एंडिंग फॉर्मेट में फाइल्स को स्टोर करती है और क्लाइंट पर मौजूद फाइल्स में लाइन एंडिंग्स को चेक आउट / क्लाइंट्स के लिए कमिट (यानी विंडोज) में कन्वर्ट कर दिया जाता है जो नॉन का इस्तेमाल करते हैं -LF लाइन एंडिंग, कोई फर्क नहीं पड़ता कि क्या लाइन एंडिंग फाइल क्लाइंट पर हैं (यह टिम क्लेम की परिभाषा से असहमत है - नीचे अपडेट देखें)।
यहां एक मैट्रिक्स है जो प्रश्नवाचक चिन्ह के साथ core.autocrlf की 'इनपुट' और 'झूठी' सेटिंग्स के लिए समान दस्तावेज़ बनाने की कोशिश करता है जहां मैं लाइन अंत रूपांतरण व्यवहार के बारे में सुनिश्चित नहीं हूं।
मेरे प्रश्न हैं:
- प्रश्नवाचक चिन्ह क्या होना चाहिए?
- क्या यह मैट्रिक्स "गैर-प्रश्न चिह्न" के लिए सही है?
मैं उत्तरों से सवालिया निशान अपडेट करता हूँ क्योंकि आम सहमति बनती है।
core.autocrlf value सच्चा इनपुट झूठा -------------------------------------------------- -------- कमिट | परिवर्तित करें? ? नया | LF (LF में कनवर्ट करें?) (कोई रूपांतरण नहीं?) कमिट | में बदलें ? नहीं मौजूदा | LF (LF में कनवर्ट करें?) रूपांतरण चेकआउट | में बदलें ? नहीं मौजूदा | CRLF (कोई रूपांतरण नहीं?) रूपांतरण
मैं वास्तव में विभिन्न सेटिंग्स के पेशेवरों और विपक्षों के बारे में राय नहीं ढूंढ रहा हूं। मैं सिर्फ डेटा की तलाश कर रहा हूं, जो यह स्पष्ट करता है कि तीन सेटिंग्स में से प्रत्येक के साथ काम करने की अपेक्षा कैसे की जाए।
-
अद्यतन ०४ /१ //२०११ : टिप्पणियों में जेजेडी द्वारा जुड़े टिम क्लेम के लेख को पढ़ने के बाद , मैंने ऊपर दी गई तालिका में "अज्ञात" मूल्यों में से कुछ मूल्यों को संशोधित किया है, साथ ही "चेकआउट मौजूदा" को बदलने के लिए सही है। ग्राहक को बदलने के बजाय CRLF में "। यहां वह परिभाषाएं हैं जो वह देता है, जो कि मैंने कहीं और देखा है, उससे अधिक स्पष्ट हैं:
core.autocrlf = false
यह डिफ़ॉल्ट है, लेकिन ज्यादातर लोगों को इसे तुरंत बदलने के लिए प्रोत्साहित किया जाता है। असत्य का उपयोग करने का परिणाम यह है कि Git आपकी फ़ाइल पर लाइन अंत के साथ कभी भी गड़बड़ नहीं करता है। आप LF या CRLF या CR या उन तीनों के कुछ यादृच्छिक मिश्रण के साथ फाइलों में जांच कर सकते हैं और Git परवाह नहीं करता है। यह पढ़ने के लिए और अधिक कठिन विलय को कठिन बना सकता है। यूनिक्स / लिनक्स की दुनिया में काम करने वाले ज्यादातर लोग इस मूल्य का उपयोग करते हैं क्योंकि उन्हें CRLF की समस्या नहीं है और जब भी फाइलें ऑब्जेक्ट डेटाबेस में लिखी जाती हैं या वर्किंग डायरेक्टरी में लिखी जाती हैं तो उन्हें अतिरिक्त काम करने की आवश्यकता नहीं होती है।
core.autocrlf = true
इसका मतलब यह है कि Git सभी पाठ फ़ाइलों को संसाधित करेगा और सुनिश्चित करेगा कि CRLF को LF के साथ बदल दिया जाए जब वह फ़ाइल ऑब्जेक्ट डेटाबेस में लिखती है और सभी LF को वापस CRLF में बदल देती है जब वर्किंग डायरेक्टरी में लिखते हैं। यह विंडोज पर अनुशंसित सेटिंग है क्योंकि यह सुनिश्चित करता है कि आपकी कार्यशील निर्देशिका में CRLF को बनाए रखते हुए आपके रिपॉजिटरी का उपयोग अन्य प्लेटफार्मों पर किया जा सकता है।
core.autocrlf = इनपुट
इसका मतलब यह है कि Git सभी टेक्स्ट फाइलों को प्रोसेस करेगा और सुनिश्चित करेगा कि CRLF को LF के साथ उस फाइल को ऑब्जेक्ट डेटाबेस में लिखते समय प्रतिस्थापित किया जाए। हालांकि, यह रिवर्स नहीं होगा। जब आप ऑब्जेक्ट डेटाबेस से फ़ाइलों को वापस पढ़ते हैं और उन्हें कार्यशील निर्देशिका में लिखते हैं तो उनके पास अभी भी लाइन के अंत को निरूपित करने के लिए एलएफ होंगे। यह सेटिंग CRLF को रिपॉजिटरी में लिखे जाने से रोकने के लिए आमतौर पर यूनिक्स / लिनक्स / ओएस एक्स पर उपयोग की जाती है। यह विचार कि यदि आपने एक वेब ब्राउज़र से कोड चिपकाया और गलती से आपकी एक फाइल में CRLFs आ गए, तो Git सुनिश्चित करेगा कि जब वे ऑब्जेक्ट डेटाबेस में लिखे गए थे, तो उन्हें LF के साथ बदल दिया गया था।
टिम का लेख उत्कृष्ट है, केवल एक चीज जो मुझे याद आ रही है वह यह है कि वह मानती है कि वह रिपॉजिटरी एलएफ प्रारूप में है, जो जरूरी नहीं कि सच है, खासकर विंडोज केवल परियोजनाओं के लिए।
टिम के लेख की जेमलाने द्वारा अब तक की सबसे ज्यादा वोटिंग के जवाब की तुलना करना सही और इनपुट सेटिंग्स पर सही समझौता और झूठी सेटिंग पर असहमति दिखाता है।
autocrlf
झूठी रखना इतना आसान लगता है;) stackoverflow.com/questions/2333424/…