2013-02-26 142 views
5

के बीच लाइन एंडिंग समस्या मेरे पास एक मैकबुक है और मैं समांतर वीएम में विंडोज चला रहा हूं। मेरा विकास मुख्य रूप से विजुअल स्टूडियो में है, लेकिन मैक शैल के साथ गिट का उपयोग करना पसंद करता हूं (जैसे विंडोज़ के लिए जो भी उपलब्ध है उससे बेहतर है)।मैक और विंडोज

जब मैं यह निर्धारित करने के लिए एक गिट diff करता हूं कि प्रतिबद्धताओं के बीच क्या बदल गया है, तो मुझे "परिवर्तन" समाप्त होने वाली कहानियों वाली रेखा मिल रही है जो वास्तव में गिट को लगता है कि वास्तव में बहुत कुछ बदल गया है।

मुझे पता है कि यह एक पुरानी समस्या है, और मैंने बहुत से लोगों से अलग-अलग सुझावों के साथ बहुत सारे शोध किए हैं, लेकिन मैं इस मुद्दे को हल करने में सक्षम नहीं हूं। सबसे आशाजनक जानकारी इस SO Post में मिली लेकिन यह मेरी समस्या का समाधान नहीं किया।

यहाँ मेरी .gitconfig से कुछ प्रासंगिक लाइनों

[core] 
    autocrlf = false 
    safecrlf = false 

इसके अलावा रहे हैं ..., मैं अपने रेपो कि केवल शामिल की जड़ में एक .gitattributes है ...

* text eol=crlf 

क्या क्या मैं गिट स्टॉप सोचने के लिए कर सकता हूं कि लाइन समाप्त होने वाले परिवर्तन एक भिन्न प्रदर्शन करते समय वास्तविक परिवर्तन हैं? दोबारा, मैं विंडोज फाइलों को देखने के लिए मैक खोल का उपयोग कर रहा हूं, इसलिए यह मेरी समस्या का हिस्सा हो सकता है।

धन्यवाद!

+0

आपके पास इसे हल करने में सक्षम हो गया? यह मेरी टीम को भी परेशान कर रहा है। मुझे पागल कर दिया। –

+0

मैंने अभी विंडोज पक्ष से गिट का उपयोग शुरू किया। मैं इसे हल करने में सक्षम नहीं था। लेकिन विंडोज पक्ष से गिट का उपयोग समस्या से बचाता है। –

+0

कोई भी मौका आपने इसे हल किया है? –

उत्तर

1

एक रूपांतरण उपयोगिता जैसे पर्ल, perl -i -pne "s/\n/\r\n/g" फ़ाइल नाम

या unix2dos और dos2unix का प्रयोग करें।

भी http://en.wikipedia.org/wiki/Newline#Conversion_utilities

देखें GIT के विन्यास के लिए एक और जवाब देखें: Force LF eol in git repo and working copy

+0

प्रतिक्रिया के लिए धन्यवाद। मैं विंडोज फाइलों पर सीआरएलएफ लाइन के अंतराल रखना चाहता हूं, लेकिन जब मैक पक्ष से गिट के अंतर को देखता हूं, तो बदलाव के रूप में समाप्त होने वाली एक अलग रेखा नहीं दिखाई देती है। मुझे लगता है कि रूपांतरण उपयोगिता वास्तव में लाइन अंत में बदल जाएगी। –

2

मैं करने के लिए gdiff उपनाम:

git diff -w origin/`git branch | sed --quiet "s/* \(.*\)/\1/p"` 

लेकिन तुम सिर्फ कर सकते हैं:

git diff -w