2016-01-30 8 views
7

के अनुसार गिट ऑटोक्राफ के लिए सही सेटिंग मैं कुछ उपयोग मामलों के अनुसार उपयोग की जाने वाली उचित सेटिंग की तलाश कर रहा था लेकिन इसका वर्णन करने वाला कोई भी स्रोत नहीं मिला। इसलिए, मैं गिट के autocrlf विकल्प के लिए सही सेटिंग की तलाश में किसी के भी समाधान के रूप में सेवा करने के लिए यह प्रश्न पूछ रहा हूं।उपयोग केस

केस 1: का उपयोग करें मै मैक पर हूं, अन्य डेवलपर्स सभी विंडोज़ पर हैं। मैं शामिल होने से पहले स्रोत कोड का प्रबंधन कर रहा हूं।

केस 2: का उपयोग करें, मैं विंडोज़ पर हूं, अन्य डेवलपर्स मैक पर हैं। मैं शामिल होने से पहले स्रोत कोड का प्रबंधन कर रहा हूं।

केस 3: का उपयोग करें मैं लिनक्स पर हूं, अन्य डेवलपर्स सभी विंडोज़ पर हैं। मैं शामिल होने से पहले स्रोत कोड का प्रबंधन कर रहा हूं।

केस 4: का उपयोग करें, मैं विंडोज़ पर हूं, अन्य डेवलपर सभी लिनक्स पर हैं। मैं शामिल होने से पहले स्रोत कोड का प्रबंधन कर रहा हूं।

केस 5: का उपयोग करें मैं लिनक्स पर हूं, अन्य डेवलपर्स मैक पर हैं। मैं शामिल होने से पहले स्रोत कोड का प्रबंधन कर रहा हूं।

केस 6: का उपयोग करें मैक पर हूं, अन्य डेवलपर सभी लिनक्स पर हैं। इससे पहले कि मैं शामिल हो गया, वे स्रोत कोड का प्रबंधन कर रहे हैं।

गिट कोर.autocrlf की किस सेटिंग का उपयोग करना चाहिए?

संपादित करें: क्यों इस सवाल इसी तरह के कई सवालों का एक नकली नहीं है:

सभी अन्य प्रश्न और उनके जवाब के लिए आवश्यक तथ्य और ज्ञान है कि एक बहुत पाठक द्वारा किया जा करने के लिए छोड़ देता है प्रदान करते हैं। इस सवाल का उद्देश्य विशिष्ट परिदृश्यों के विशिष्ट उत्तर पूछना है।

+1

[जीआरटी सीएफएलएफ के साथ एलएफ की जगह] का संभावित डुप्लिकेट (http://stackoverflow.com/questions/1967370/git-replacing-lf-with-crlf) – CodeWizard

+0

मैंने उससे संबंधित सभी प्रश्नों को देखा है लेकिन नहीं एक विशेष रूप से किसी विशेष उपयोग मामले के लिए उपयोग की जाने वाली सेटिंग को पूछता है। ये सभी प्रश्न ज्ञान प्रदान करते हैं लेकिन जवाब नहीं देते हैं कि क्या करना है :) –

+1

आपको 'core.autocrlf' का उपयोग नहीं करना चाहिए, आपको इसके बजाय अपना '.gitattributes' सही तरीके से सेट अप करना चाहिए। –

उत्तर

3

सरल:

git config core.autocrlf false 

core.autocrlf एक config, जिसका अर्थ यह धक्का दिया या रेपो के साथ क्लोन नहीं है (सभी और किसी भी परिदृश्य के लिए): यह करने के लिए है उपयोगकर्ता द्वारा सेट किया जाना चाहिए।

रेपो स्तर पर ईओएल को संभालने का विरासत तरीका था।

आप क्या उपयोग करना चाहते हैं (अपने परिदृश्य के आधार पर जोड़ें या संशोधित करें) gitattributes core.eol directives हैं।

  • .gitattributes is a file जो किसी भी अन्य फाइल की तरह Git रेपो में प्रबंधित किया जा सकता है। एक बार जब आप ईओएल पॉलिसी पर सहमत हो जाते हैं, तो वह पॉलिसी प्रत्येक क्लोन पर लागू की जाएगी।
  • आप एक फ़ाइल के लिए core.eol निर्देशों सेट कर सकते हैं, या फ़ाइलों के समूह अगर आप चाहते हैं

विषम वातावरण के लिए, core.eol (केवल फ़ाइलों के लिए (के रूप में वैश्विक भंडार चौड़ा config core.autocrlf के खिलाफ) आप समस्याग्रस्त मानते हैं) native होना चाहिए (यदि आपको संदेह है कि आपका संपादक फ़ाइल में पहले से मौजूद किसी का उपयोग करने के बजाय सिस्टम ईओएल का उपयोग करने पर जोर देता है)।

अधिक के लिए, "Mind the End of Your Line" देखें।

0

core.autocrlf के बारे में चिंता न करें; रूट निर्देशिका में एक .gitattributes फ़ाइल जोड़ सकते हैं और निम्न पंक्ति डाल:

* text=auto 

यह Git कारण होगा स्वचालित रूप से सभी लाइन अंत कन्वर्ट करने के लिए प्रतिबद्ध पर वामो के लिए, और (Windows मशीनों के लिए) लाइन अंत चेकआउट पर CRLF में बदलने का ।

ध्यान दें कि उपयोग के मामले 1 और 3 के लिए, जहां मौजूदा डेवलपर्स विंडोज पर हैं, इस लाइन को .gitattributes पर जोड़कर यह आपके जैसे दिखने में अचानक बदलावों में से एक टन हो सकता है। ऐसा इसलिए है क्योंकि आपके पास भंडार में सीआरएलएफ के साथ बहुत सी फाइलें हैं, और गिट जानता है कि इसे सभी को एलएफ में परिवर्तित करना है। आगे बढ़ें और उन परिवर्तनों को करें, भले ही ऐसा लगता है कि कुछ भी वास्तव में नहीं बदला है।

ध्यान देने योग्य एक और बात यह है कि यदि हर कोई एक ही ओएस पर है, तो मैं लाइन अंतराल को परिवर्तित करने के साथ भी गड़बड़ नहीं करता; उस स्थिति में, * -text को अपनी .gitattributes फ़ाइल में डालें ताकि कोई रूपांतरण न हो।

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