2009-04-20 12 views
9

गिट में diff कार्यक्षमता में "प्रतिलिपि का पता लगाने" है - यदि यह पता चलता है कि एक नई फ़ाइल वास्तव में एक मौजूदा फ़ाइल की एक (संभावित रूप से संशोधित) प्रति है, तो diff आउटपुट स्रोत फ़ाइल और नई फ़ाइल के बीच अंतर दिखाता है एक खाली फ़ाइल से नई फाइल में बस जोड़ों का एक गुच्छा।क्या मैं एक प्रतिलिपि के रूप में फ़ाइल के इलाज के लिए गिट diff को मजबूर कर सकता हूं?

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

उत्तर

3

git diff (कम से कम मेरी संस्करण 1.5.6 करता है) स्विच --find-copies-harder, जो और अधिक CPU- सघन प्रतिलिपि का पता लगाने की तुलना में नियमित -C करता है के साथ आता है।

+0

मैंने कोशिश की --find-प्रतियां-कठिन और यह अभी भी की एक प्रति के रूप में मेरी नई फ़ाइल का पता नहीं चला एक मौजूदा फाइल – nohat

0

बस यह सुनिश्चित करना चाहते हैं कि इसे गिट रेपो में जोड़ा गया हो।

यदि आप मूल फ़ाइल को जानते हैं, तो सीधे diff का उपयोग क्यों न करें?

+0

diff का उपयोग करना सीधे काम करता है, लेकिन मैं अपने 'git diff' परिणामों में diff को शामिल करना चाहता हूं। – nohat

+0

में नई फ़ाइल को गिट रेपो में जोड़ा गया है? – sfossen

0

क्या आपने दोनों फ़ाइलों को diff में डालने का प्रयास किया है?

कुछ

git diff --stat -p --find-copies-harder -- src/OldFile.java src/main/NewFile.java 

की तरह मुझे लगता है तुमने किया था, सिर्फ मामले में ...

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

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