चेतावनी: LF को CRLF द्वारा प्रतिस्थापित किया जाएगा।
आपके द्वारा उपयोग किए जा रहे संपादक के आधार पर, LF के साथ एक पाठ फ़ाइल आवश्यक नहीं है CRLF के साथ सहेजा जाएगा: हाल के संपादक ईओल शैली को संरक्षित कर सकते हैं। लेकिन यह git config सेटिंग को बदलने पर जोर देता है ...
बस यह सुनिश्चित करें कि (जैसा मैं यहाँ सुझाता हूँ ):
git config --global core.autocrlf false
इस तरह, आप किसी भी स्वचालित परिवर्तन से बचते हैं, और फिर भी उन्हें .gitattributesफ़ाइल और core.eolनिर्देशों के माध्यम से निर्दिष्ट कर सकते हैं ।
विंडोज़ git "LF को CRLF द्वारा प्रतिस्थापित किया जाएगा"
क्या यह चेतावनी पूंछ पीछे है?
नहीं: आप Windows पर हैं, और git configमदद पृष्ठ उल्लेख करता है
यदि आप CRLFअपनी वर्किंग डायरेक्टरी में लाइन एंडिंग करना चाहते हैं तो भी इस सेटिंग का उपयोग करें , हालांकि रिपॉजिटरी में सामान्यीकृत लाइन एंडिंग्स नहीं हैं।
जैसा कि " CRLF के साथ LF की जगह git " में वर्णित है , यह केवल चेकआउट (कमिट नहीं) के साथ होना चाहिएcore.autocrlf=true ।
repo
/ \
crlf->lf lf->crlf
/ \
जैसा कि XiaoPeng के उत्तर में उल्लेख किया गया है , यह चेतावनी निम्नानुसार है:
चेतावनी: (यदि आप इसकी जांच करते हैं / या अपने वर्तमान core.autocrlfकॉन्फ़िगरेशन के साथ किसी अन्य फ़ोल्डर में क्लोन करते हैं ), LF को CRLF द्वारा प्रतिस्थापित किया
जाएगा। फ़ाइल में आपकी (वर्तमान) कार्यशील निर्देशिका में इसकी मूल पंक्ति समाप्त होगी।
जैसा कि बताया गया है git-for-windows/git 1242 अंक :
मुझे अभी भी लगता है कि यह संदेश भ्रामक है, इस मुद्दे के बेहतर स्पष्टीकरण को शामिल करने के लिए संदेश को बढ़ाया जा सकता है, उदाहरण के लिए: "LF को file.jsonफ़ाइल को हटाने और इसे फिर से जाँचने के बाद CRLF द्वारा प्रतिस्थापित किया जाएगा "।
नोट: Git 2.19 (Sept 2018), का उपयोग करते समय core.autocrlf, फर्जी "LF को CRLF द्वारा प्रतिस्थापित किया जाएगा" चेतावनी अब दबा दी गई है ।
के रूप में सही टिप्पणी quaylar , यदि कोई रूपांतरण है, तो यह LFकेवल करना है।
वह विशिष्ट चेतावनी " LF will be replaced by CRLF" Convert.c # check_safe_crlf () से आती है :
if (checksafe == SAFE_CRLF_WARN)
warning("LF will be replaced by CRLF in %s.
The file will have its original line endings
in your working directory.", path);
else /* i.e. SAFE_CRLF_FAIL */
die("LF would be replaced by CRLF in %s", path);
इसे कहा जाता है convert.c#crlf_to_git(), स्वयं द्वारा बुलाया जाता है convert.c#convert_to_git(), स्वयं द्वारा बुलाया जाता हैconvert.c#renormalize_buffer() ।
और वह अंतिम renormalize_buffer()ही कहलाता हैmerge-recursive.c#blob_unchanged() ।
इसलिए मुझे संदेह है कि यह रूपांतरण ए पर होता है git commit केवल तभी जब कहा जाए कि यह एक मर्ज प्रक्रिया का हिस्सा है।
नोट: Git 2.17 (Q2 2018) के साथ, एक कोड क्लीनअप कुछ स्पष्टीकरण जोड़ता है।
Torsten Bögershausen ( ) द्वारा प्रतिबद्ध 8462ff4 (13 जनवरी 2018) देखें । ( जूनियो सी हमानो द्वारा विलय - - में 9bc89b1 , 13 फरवरी 2018 को)tboegi
gitster
Convert_to_git (): safe_crlf / checkafe int conv_flags हो जाता है
कॉल करते समय convert_to_git(), checksafeपैरामीटर परिभाषित करता है कि क्या होना चाहिए अगर ईओएल रूपांतरण ( CRLF --> LF --> CRLF) सफाई से गोल नहीं करता है।
इसके अलावा, यह भी परिभाषित किया जाता है कि क्या लाइन एंडिंग को फिर से असामान्य किया जाना चाहिए (CRLF --> LF ) या उन्हें रखा जाए।
चेक safe_crlfइन मूल्यों के साथ एक एनफोम था :
SAFE_CRLF_FALSE: do nothing in case of EOL roundtrip errors
SAFE_CRLF_FAIL: die in case of EOL roundtrip errors
SAFE_CRLF_WARN: print a warning in case of EOL roundtrip errors
SAFE_CRLF_RENORMALIZE: change CRLF to LF
SAFE_CRLF_KEEP_CRLF: keep all line endings as they are
ध्यान दें कि 8462ff4 (" convert_to_git():
" safe_crlf/checksafeबन जाता है int conv_flags", 2018-01-13, Git 2.17.0) में एक प्रतिगमन Git 2.17 चक्र में वापस सेट करने के बावजूदautocrlf चेतावनी संदेश उत्पन्न करने के लिए पुनर्लेखन का
कारण बना।safecrlf=false ।
एंथोनी Sottile ( ) द्वारा प्रतिबद्ध 6cb0912 (04 जून 2018) देखें । ( जूनियो सी हमानो द्वारा विलय - - ff०६३ ९ ० ९, २8 जून २०१io में )asottile
gitster