2013-10-25 7 views
23

नहीं है गिट डिफ इंजन पूरी फ़ाइल को तब बदल रहा है जब यह नहीं है। उदाहरण के लिए, इस के लिए प्रतिबद्ध ले: https://github.com/etiago/phpvirtualbox/commit/626e09958384f479f94011ac3b8301bd497aec51गिट डिफ पूरे फ़ाइल को बदलता है जब यह

यहाँ हम देखते हैं कि फ़ाइल lib/vboxconnector.php 2807 जोड़ और 2778 विलोपन है। इसके अतिरिक्त, मैन्युअल गिट diff करने से मुझे लगता है कि वास्तव में, पूरी फ़ाइल को हटाए जाने के रूप में लिया जाता है (शून्य से चिह्नित) और एक पूरी नई फ़ाइल को एक अतिरिक्त के रूप में लिया जाता है। हालांकि, फाइलों में बहुत कुछ आम है जो गिट ने अनदेखा किया।

मैंने diff returning entire file for identical files पर देखा है लेकिन ऐसा लगता है कि दोनों कामों के बीच कोई सफेद स्थान परिवर्तन मौजूद नहीं है।

इसके अलावा, फ़ाइल के दो काम (626e09958384f479f94011ac3b8301bd497aec51 और 626e09958384f479f94011ac3b8301bd497aec51^1 में) लेते हुए और उन्हें मेल्ड का उपयोग करके अलग करते हुए, मुझे सही अंतर विश्लेषण मिलता है।

मैंने सुविधा के लिए मेरे ड्रॉपबॉक्स में फ़ाइल के दो काम अपलोड किए हैं: commit_1commit_2

+0

http://stackoverflow.com/help/dont-ask। प्रश्न जो आपको नहीं पूछना चाहिए: * हल करने की कोई वास्तविक समस्या नहीं है: "अगर मैं अन्य लोगों को ऐसा महसूस करता हूं तो मुझे उत्सुकता है।" * –

+0

या ..... यह सही है और आपने फ़ाइल को फिर से लिखा है! –

उत्तर

43

vboxconnector.php_1 में, हर पंक्ति एक CRLF अनुक्रम द्वारा समाप्त हो जाता है।

vboxconnector.php_2 में, प्रत्येक पंक्ति को केवल LF द्वारा समाप्त कर दिया गया है।

इस प्रकार फ़ाइल की प्रत्येक पंक्ति बदल गई है।

git diff --ignore-space-at-eol का उपयोग करने का प्रयास करें।

आपको the answers to this question में कुछ उपयोगी जानकारी भी मिल सकती है।

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