2012-10-13 11 views
23

मुझे एक ऐसी वेबसाइट मिली है जिसमें एक गिट रेपो है। मैंने रेपो को क्लोन किया ताकि मैं एक निर्देशिका में विकसित हो सकूं और फिर रेपो को दबा सकूं, और फिर लाइव/प्रोड निर्देशिका में खींच सकूं (यदि कोई है तो ऐसा करने के बेहतर तरीके के लिए सुझावों में रुचि होगी, लेकिन यह बाहर है इस सवाल का दायरा)।diff समान फ़ाइलों के लिए पूरी फ़ाइल लौटने

git add . 
git commit -a // added a message 
git push 

मैं तो देव निर्देशिका में निम्नलिखित किया:

git clone [email protected]:user/repo.git 

मैं तो दो फ़ाइलों को खोला, prod

मैं जीना निर्देशिका में निम्नलिखित मेरे सभी नवीनतम परिवर्तनों पुश करने के लिए किया था /root/test.php और dev/root/test.php, और वे समान दिखते थे। हालांकि, जब मैं निम्नलिखित diff आदेश किया था, वह पूरी फ़ाइल outputted:

diff prod/root/test.php dev/root/test.php 

मैं इतना के रूप में उलझन में हूँ क्यों diff होगा उत्पादन पूरी फ़ाइल वे कर रहे हैं समान ... मैं भी इस googling की कोशिश की है, तो और इस समस्या के साथ किसी और को नहीं मिल सकता है। हो सकता है कि यह एक लाइन एंडिंग समस्या है या एक चरित्र एन्कोडिंग समस्या है जहां वे समान दिखते हैं लेकिन वे वास्तव में अलग हैं और जब आप अपने रेपो को दबाते हैं तो गिट/बिटबकेट इसे परिवर्तित करता है? यही एकमात्र चीज है जिसके बारे में मैं सोच सकता हूं ... या तो वह या मैं वास्तव में कुछ याद कर रहा हूं।

1,3c1,3 
< <? 
< echo '<p>Hello world!</p>'; 
< ?> 
--- 
> <? 
> echo '<p>Hello world!</p>'; 
> ?> 

उत्तर

27

यह भविष्य में उनसे बचने के लिए एक सफेद जगह की तरह लगता है, आप उन्हें सामान्य करने के लिए गिट सेट कर सकते हैं।

Windows और यूनिक्स प्रणाली एक ही पंक्ति न खत्म होने वाली है, इन के आधार पर होने से संघर्ष को रोकने के लिए, आप सेटअप उस Git चाहिए config इस तरह से उपयोग नहीं करते हैं:

  • विंडोज: git config --global core.autocrlf true
  • यूनिक्स: git config --global core.autocrlf input

इसके बाद, यकीन है कि हम केवल आदर्श खाली स्थान के नियमों के साथ प्रतिबद्ध बनाने के लिए, तो आप इस config opti सेट कर सकते हैं पर:

git config --global core.whitespace trailing-space,space-before-tab,indent-with-non-tab 
2

कि आम तौर पर लाइन अंत अलग हैं का अर्थ है:

यहाँ उत्पादन है। अधिकांश diffin कार्यक्रम आपको लाइन अंत में मतभेदों को अनदेखा करने की अनुमति देता है। क्या आप ऐसा करने की अनुमति देते हैं?

12

अधिकतर यह लाइन समाप्ति है। git diff --ignore-space-at-eol आज़माएं। और सादे के लिए (git नहीं) diff यह diff -b है।

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