Git के साथ, मैं "LF को CRLF द्वारा बदल दिया जाएगा" चेतावनी को कैसे बंद करूँ


153

गिट के साथ, जब autocrlf = trueध्वज का उपयोग करते हैं, तब भी एक चेतावनी दी जाती है जब लाइन-एंडिंग को बदल दिया जाता है।

मैं समझता हूं कि चेतावनी क्या है और लाइन-एंडिंग फ़्लैग को कैसे बंद किया जाए, लेकिन मैं चेतावनी को कैसे बंद करूं?


यहाँ सभी उत्तर अप्रचलित हैं - git के बाद gitattributes की शुरुआत की। Safecrlf है आपका दोस्त आटोक्रॉफ्ट नहीं है! कृपया मेरा उत्तर
रूसी

जवाबों:


280

आप चेतावनी को बंद कर सकते हैं

git config --global core.safecrlf false

(यह केवल फ़ंक्शन को बंद करेगा, न कि फ़ंक्शन को ही।)


चेतावनी को बंद करने से क्रेट द्वारा lf को बदलने से git को रोका जा सकेगा? @ सिंक्रोनस
एडेप्सनस

3
git डॉक्स से @aidonsnous : यदि core.safecrlf "true" या "चेतावनी" पर सेट है, तो git सत्यापित करता है कि क्या कोर core.autocrlf की वर्तमान सेटिंग के लिए रूपांतरण प्रतिवर्ती है। "सच" के लिए, जीट अपरिवर्तनीय रूपांतरणों को अस्वीकार करता है; "चेतावनी" के लिए, git केवल एक चेतावनी प्रिंट करता है लेकिन एक अपरिवर्तनीय रूपांतरण को स्वीकार करता है। यदि आपको अपरिवर्तनीय रूपांतरणों को अस्वीकार करने की आवश्यकता नहीं है, तो चेतावनी को दबाने के लिए core.safecrlf की स्थापना करें, लेकिन फिर भी ऑटो परिवर्तित हो जाता है।
डैनी लीबिन

5

आपको उपयोग करना चाहिए core.autocrlf inputऔर core.eol input। या बस git को लाइन एंडिंग को बिल्कुल भी बदलने न दें autocrlf falseऔर साथ में, आदि में crlfs के हाइलाइटिंग से छुटकारा पाएं core.whitespace cr-at-eol

उम्मीद है की यह मदद करेगा


आमतौर पर, आप चाहते हैं कि आपकी बैट स्क्रिप्ट समाप्त हो जाए और CRLF, और LF के साथ आपकी SH स्क्रिप्ट के साथ शुरुआत की जाए।
सैंडबर्ग

0

आप core.whitespaceविकल्प ढूंढ रहे हैं ( git config --helpविवरण देखें)।

आप इस विकल्प को इस तरह सेट कर सकते हैं:

$ git config core.whitespace cr-at-eol

0

मैंने इस तरह से इस्तेमाल किया:

अपनी वर्तमान फ़ाइलों को Git में सहेजें, ताकि आपका कोई भी कार्य खो न जाए।

git add . -u
git commit -m "Saving files before refreshing line endings"

हर फाइल को Git के Index से निकालें।

git rm --cached -r .

सभी नई लाइन अंत को लेने के लिए Git इंडेक्स को फिर से लिखें।

git reset --hard

अपनी सभी परिवर्तित फ़ाइलों को वापस जोड़ें, और उन्हें कमिट करने के लिए तैयार करें। यह आपके लिए मौका है कि कौन सी फाइलें, यदि कोई हैं, का निरीक्षण किया जाए।

git add .
# It is perfectly safe to see a lot of messages here that read
# "warning: CRLF will be replaced by LF in file."

अपने भंडार में बदलाव करें।

git commit -m "Normalize all the line endings"

https://help.github.com/articles/dealing-with-line-endings/


13
मेरा मानना ​​है कि ओपी उन चेतावनियों को देखने से बचने की कोशिश कर रहा था। सभी पंक्ति अंतों को सामान्य न करें।
माइक जूल

git rm --cached -r . && git reset --hardचाल करने के लिए लगता है, धन्यवाद
शनीमल

0

मजेदार रूप से पर्याप्त है, मैंने दोनों विन्यासों को यहां समझाया जैसे लागू किया था, और मेरी .gitconfig फ़ाइल में ये 2 पंक्तियाँ थीं:

[core]
       autocrlf = false
       whitespace = cr-at-eol

फिर भी मुझे चेतावनी मिल गई। अब बस कोशिश करने के लिए मैंने दोनों पंक्तियों पर टिप्पणी की और चेतावनी वास्तव में गायब हो गई। कोई विचार नहीं है कि मैंने उन्हें पहले स्थान पर क्यों रखा ...


0

"Core.safecrlf false" सेट करना काम करता है। हालाँकि, मैंने मान को 'सत्य' में बदल दिया, आउटपुट को 'चेतावनी' से 'घातक' में बदल दिया, जैसा कि नीचे दिखाया गया है।

$ git add -A
warning: LF will be replaced by CRLF in .gitignore.
The file will have its original line endings in your working directory

$ git config --global core.safecrlf false

$ git reset

$ git config --global core.safecrlf true

$ git add -A
fatal: LF would be replaced by CRLF in .gitignore

$

हाल ही में gitattributes का उपयोग करने के लिए gitattributes से बेहतर है। मेरा जवाब देखिए । सभी उत्तर (इस q पर) पुराने और अप्रचलित हैं
रुसी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.