2012-03-09 27 views
20

मेरे पास एक फ़ाइल foo.txt है जिसे मैं हटाना चाहता हूं, और दूसरा, bar.txt, जिसे मैं जोड़ना चाहता हूं। यदि इन दो फाइलों में 50% से अधिक सामग्री है, तो गिट इस बात पर विचार करेगा कि foo.txt का नाम बदलकर bar.txt किया जा रहा है। ग्लोबल थ्रेसहोल्ड डिटेक्शन% को बदले बिना, एक ही प्रतिबद्धता में, एक व्यक्तिगत जोड़ के साथ, गिट को वास्तव में इसे एक व्यक्तिगत निकालने के रूप में कैसे देख सकता है।गिट अनदेखा नाम बदलें

धन्यवाद!

+4

क्या कोई विशेष कारण है कि इसे "नाम बदलें" के रूप में लॉग किया जा रहा है? – Ryan

+6

समस्या यह है कि दो फाइलों का इतिहास उनके इतिहास में नहीं होना चाहिए। मान लीजिए कि मेरे पास 'JohnDoe.txt' शीर्षक वाली एक फ़ाइल है जिसमें जॉन का कार्य पता और 555-555-1212 का फ़ोन नंबर शामिल है। जॉन एक ही समय में कंपनी छोड़ देता है क्योंकि जेन स्मिथ कंपनी में शामिल हो जाता है (फाइल 'जेनस्मिथ.txt') बनाते हैं। उसका काम पता वही है, लेकिन फोन नंबर 555-555-1313 है। यदि दो ऐड/आरएम एक ही प्रतिबद्धता का हिस्सा हैं, तो गिट इसे एक नाम पर विचार करेगा और 'गिट लॉग - फॉलो' मुझे बताएगा कि वे एक ही फाइल थे (जब मैं पेटेंट से उन्हें नहीं चाहता)। सुझाव? – torngat

+0

@poke मैं स्पष्ट नहीं हूं कि डुप्लिकेट कैसे काम करता है। आपके प्रश्न की पहचान से एक साल पहले मुझसे पूछा गया था। क्या आप "सबसे पूर्ण" उत्तर से जाते हैं? – torngat

उत्तर

18

आप नहीं कर सकते। आंतरिक रूप से, वे एक हटाने और एक अतिरिक्त के रूप में सहेजा जाएगा। "नाम बदलें" का प्रदर्शन बाद में गणना की जाएगी और उस सीमा पर निर्भर करता है।

1

TortoiseGit साथ नाम बदलने का पता लगाने को अक्षम करने के मैं gitconfig में निम्न पंक्ति है, जो चाल (करने के लिए प्रलेखन के आधार पर हालांकि लगता है जोड़ा (हालांकि किया जा रहा है Git-diff विकल्प, अपने आप में git करने के रूप में अच्छी तरह लागू करना चाहिए), मुझे नहीं लगता कि यह चाहिए):

[diff] 
    renameLimit = 1 
संबंधित मुद्दे