git ने हाल ही में utf16 जैसे एनकोडिंग्स को समझना शुरू किया है। Gitattributes डॉक्स देखें , खोजेंworking-tree-encoding
[सुनिश्चित करें कि आपका आदमी पृष्ठ मेल खाता है क्योंकि यह काफी नया है!]
अगर (कहते हैं) फ़ाइल बिना किसी मशीन के यूटीएफ -16 विंडोज मशीन पर है तो अपनी .gitattributesफाइल में जोड़ें
*.vmc text working-tree-encoding=UTF-16LE eol=CRLF
यदि यूटीएफ -16 (बम के साथ) पर * निक्स बनाते हैं:
*.vmc text working-tree-encoding=UTF-16-BOM eol=LF
(बदलें *.vmcसाथ *.whateverके लिए whateverप्रकार फ़ाइलों को आप संभाल करने की जरूरत है)
देखें: वर्किंग-ट्री-एन्कोडिंग "UTF-16LE-BOM" का समर्थन करें ।
बाद में जोड़ा गया
@Hackslash के बाद, कोई पा सकता है कि यह अपर्याप्त है
*.vmc text working-tree...
अच्छा टेक्स्ट-डिफरेंस पाने के लिए आपको जरूरत है
*.vmc diff working-tree...
दोनों को मिलाकर काम करना
*.vmc text diff working-tree...
लेकिन यकीनन है
- निरर्थक -
eol=...तात्पर्य हैtext
- Verbose - एक बड़ी परियोजना में आसानी से दर्जनों विभिन्न पाठ फ़ाइल प्रकार हो सकते हैं
समस्या
Git में एक मैक्रो-विशेषता है binary जिसका अर्थ है -text -diff। विपरीत +text +diffउपलब्ध नहीं है, लेकिन गिट इसे संश्लेषित करने के लिए उपकरण (मुझे लगता है!) देता है
समाधान
Git नई मैक्रो विशेषताओं को परिभाषित करने की अनुमति देता है।
मुझे लगता है कि .gitattributesआपके पास उस फ़ाइल का शीर्ष प्रस्ताव होगा
[attr]textfile text diff
फिर उन सभी रास्तों के लिए जिन्हें पाठ और अलग करना आवश्यक है
path textfile working-tree-encoding= eol=...
ध्यान दें कि ज्यादातर मामलों में हम डिफ़ॉल्ट एन्कोडिंग (utf-8) और डिफ़ॉल्ट eol (देशी) चाहते हैं और इसलिए इसे गिराया जा सकता है।
ज्यादातर लाइनों की तरह दिखना चाहिए
textfile *.c
textfile *.py
Etc
सिर्फ अंतर का उपयोग क्यों नहीं?
व्यावहारिक: ज्यादातर मामलों में हम देशी ईओएल चाहते हैं। जिसका अर्थ है नहीं eol=...। तो textनिहित नहीं होगा और स्पष्ट रूप से रखा जाना चाहिए।
वैचारिक: पाठ बनाम द्विआधारी मौलिक भेद है। eol, एन्कोडिंग, फ़र्क आदि इसके कुछ पहलू हैं।
अस्वीकरण
विचित्र समय के कारण हम जिस जीवन में रह रहे हैं, उसमें वर्तमान कार्य के साथ मशीन नहीं है। इसलिए मैं नवीनतम जोड़ की जांच करने में फिलहाल असमर्थ हूं। अगर किसी को कुछ गलत लगता है, तो मैं उसे हटा / हटा दूँगा।