2011-12-28 12 views
40

के लिए घातक त्रुटि मिलती है मैं गिट करने के लिए नया हूं और मुझे कुछ मदद चाहिए। मैं विंडोज़ पर msysgit का उपयोग कर रहा हूँ।गिट, भंडार में फाइलें जोड़ने से एलएफ -> सीआरएलएफ

जब मैं कमांड git add [folderName] निष्पादित मैं प्रतिक्रिया मिल:

fatal: LF would be replaced by CRLF in [.css file or .js file] 

और फिर अगर आप करने की कोशिश एक प्रतिबद्ध कुछ नहीं होता।

$ git commit 
# On branch master 
# 
# Initial commit 
# 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
#  so01/ 
nothing added to commit but untracked files present (use "git add" to track) 

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

किसी भी मदद की बहुत सराहना की जाएगी।

संपादित

गलत पर core.autocrlf स्थापना समस्या को हल करने लगता है, लेकिन मैं कई पदों पर पढ़ा गलत पर इस विकल्प को सेट करने के लिए नहीं।

क्या कोई मुझे बता सकता है कि मुझे यह पता चल सकता है कि इस स्थिति में कौन सी समस्याएं उत्पन्न हो सकती हैं?

+0

आप दूसरों कि एक गैर खिड़कियों पर्यावरण पर कर रहे हैं के साथ काम कर रहे हैं? –

+2

नहीं। मैं एक छोटे ऐप पर काम कर रहा हूं जिसे मैं अपहरण पर रखूंगा। अब तक सब कुछ अच्छा है, लेकिन मैं जानना चाहता था कि उन विकल्पों में क्या अंतर है। ऐप को खत्म करने के बाद मैं कुछ रीसर्च करने की योजना बना रहा हूं लेकिन औसत समय में हालांकि मैं एक त्वरित समाधान के लिए SO का उपयोग करूंगा। – user619656

+0

फिर autocrlf को झूठी सेट करने के लिए और भी अधिक कारण। आपको सिरदर्द की आवश्यकता नहीं है। फाइलें इस तरह प्रतिबद्ध हैं। यह बहुत बुरा है कि msysgit को स्थापित करते समय डिफ़ॉल्ट सेटिंग्स सबसे खराब विकल्प लेती हैं। –

उत्तर

22

कोड संपादकों को अपनी लाइन समाप्ति में हेरफेर करने के लिए भरोसा करें। ऑटो सीआरएलएफ गलत होना चाहिए। स्रोत नियंत्रण को बहुत स्मार्ट न होने दें। यदि आपकी लाइन एंडिंग को बदलने के लिए अपने स्रोत नियंत्रण उपकरण की आवश्यकता नहीं है, तो नहीं। यह चोट लगी होगी।

एक स्वीकृत उत्तर से दोहराने के लिए: "जब तक आप विशिष्ट उपचार नहीं देख सकते हैं जो देशी ईओएल से निपटना चाहिए, तो आप आधिकारिक रूप से झूठ बोलने से बेहतर हैं।"

autocrlf पर अनुभाग के अंत में progit किताब से

इसके अलावा:

"यदि आप एक Windows- केवल प्रोजेक्ट कर एक Windows प्रोग्रामर रहे हैं, तो आप इस कार्यक्षमता बंद कर सकते हैं, में कैरिएज रिटर्न रिकॉर्डिंग गलत "के लिए config मूल्य निर्धारित करके भंडार

केवल अन्य मदद मैं दे सकते हैं कि यदि आप दूसरे मार्ग अपनाते हैं, जो इस तरह के vim -b MSysGit में सीआर विशेष वर्ण दिखाई देगा, और git show HEAD:path/to/your/file.txt जो से परिचित हो रहा है आपको उस फ़ाइल को दिखाएगा जिस तरह से गिट ने इसे संग्रहीत किया था।

core.whitespace cr-at-eol सेट करने के लिए पैच और diffs को संभावित समस्याग्रस्त सफेद जगह के रूप में सीआर को हाइलाइट नहीं किया गया है।

परेशानी के लायक नहीं है। स्टोर के रूप में है।

+0

ऑटो CRLF झूठी <होना चाहिए - यह खिड़कियों पर सच – prusswan

+2

हाँ यह खिड़कियों पर सच है नहीं है। दोबारा, autocrlf = झूठी लेकिन कुछ भी मत करो। मैं पिछले 4 सालों से विंडोज/नेट में कई टीमों के साथ ऐसा कर रहा हूं। आप गिरने और खुद को चोट पहुंचाने के लिए अन्य सामान कर सकते हैं। आप अंततः autocrlf को झूठी सेट कर देंगे। –

+3

क्यों अपने वास्तविक सबूत खिड़कियों के लिए विशिष्ट है/.net दूसरों की तुलना में अधिक महत्वपूर्ण और http://progit.org/book/ch7-1.html में क्या सलाह देते है? – prusswan

6

समस्या शायद इसलिए हो रही है क्योंकि आप core.eol सेटिंग के साथ crlf के साथ आंतरिक रूप से फ़ाइलों को स्टोर करने के लिए गिट सेट करते हैं। जब आप कोई फ़ाइल जोड़ते हैं, तो गिट आपको चेतावनी दे रहा है कि यह इसे आंतरिक प्रारूप में बदल देगा।

गिट lf लाइन समाप्ति के साथ सबसे अच्छा काम करता है, इसलिए यदि संभव हो तो हमेशा core.eol = lf के साथ काम करें।

यह जब core.autocrlf उपयोग करने के लिए की व्याख्या करनी चाहिए, Why should I use core.autocrlf=true in Git?

तुम भी core.safecrlf उपयोग कर सकते हैं। सेटिंग्स पर विवरण के लिए git config --help देखें।

+0

उत्तर राज्यों से जुड़ा हुआ जवाब: "जब तक आप विशिष्ट उपचार नहीं देख सकते हैं जो देशी ईओएल से निपटना चाहिए, तो आप आधिकारिक रूप से झूठ बोलने से बेहतर हैं।" –

+0

मुझे यकीन नहीं है कि मुझे इसके लिए डाउनवोट क्यों मिला? क्या मुझे कुछ याद आया है? @AdamDymitruk यह कुछ मामलों को भी देता है जहां इसका उपयोग किया जा सकता है। मुझे लगता है कि यह जानना उपयोगी है कि इसका विकल्प क्यों है (अगर मुझे इसे कभी नहीं इस्तेमाल करना चाहिए, तो मैं इसे क्यों सेट कर सकता हूं?) – m0tive

24

इस के लिए बहुत नया कोर .autocrlf को झूठी करने के लिए मुझे बहुत अधिक समझ नहीं आया। तो अन्य नवागंतुकों के लिए, कॉन्फ़िग फ़ाइल के लिए जाने में आप फ़ोल्डर और जोड़ने .git: [कोर] शीर्षक के अंतर्गत

[core] 
    autocrlf = false 

+11

या कमांड लाइन से ... git config core.autocrlf false – petercoles

0

प्रारूपों का गिट ऑटोडेटेक्शन बहुत अच्छी तरह से काम करता है। इसलिए, core.autocrlf=true विंडोज पर वास्तव में एक अच्छा विचार है।

कह git config --global core.safecrlf=false Git करने के लिए कहते हैं: अरे, मेरा गलत लाइन अंत विंडोज लाइन अंत (CRLF) से (वामो केवल) में परिवर्तित कृपया और मुझे इसके साथ परेशान नहीं है।

इसलिए, आपको वास्तव में core.safecrlf अक्षम करना चाहिए। पर

लंबे समय तक जवाब: https://stackoverflow.com/a/15471083/873282

+0

@downvoters: कृपया बताएं कि आप इस उत्तर को क्यों हटाते हैं। यह (i) दूसरों को यह समझने में सहायता करता है कि इस उत्तर में कोई वोट क्यों नहीं है और (ii) उत्तर में सुधार करने के लिए। – koppor

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