2012-06-20 10 views
18

चलो कहते हैं कि मैं नहीं है किनामित फ़ाइलों में परिवर्तनों को मर्ज करने का प्रयास क्यों नहीं करता है?

  1. मास्टर
  2. एक सुविधा शाखा
  3. एक सुविधा शाखा

में नाम बदलकर जब मैं गुरु से अप करने के लिए विलय करने की कोशिश में संशोधित में संशोधित एक फाइल करते हैं सुविधा शाखा, विलय के साथ

टकराव (बदलें/हटाना) में विफल रहता है: एक्स हेड में नष्ट कर दिया और संशोधित मूल/मास्टर में। पेड़ में छोड़े गए एक्स के संस्करण मूल/मास्टर।

मैं समझता हूँ कि एक संघर्ष है कि वहाँ, लेकिन क्यों यह और भी परिवर्तन मर्ज और फ़ाइल में संघर्ष मार्करों देने का प्रयास नहीं करता है? Previous answers seem to imply that it should. मुझे बस फ़ाइल के दो अलग-अलग संस्करण मिलते हैं, जहां मुझे मैन्युअल रूप से अंतर को समझना होगा और मास्टर संस्करण से मेरे संस्करण में लाइन द्वारा लाइन बदलना होगा। पुन: पेश करने

कदम:

git init 
touch a 
git add a 
git commit -m 'initial import' 

git checkout -b feature1 
echo feature1 > a 
git add a 
git commit -m feature1 
git mv a b 
git commit -m feature1 

git checkout master 
echo bugfix > a 
git add a 
git commit -m bugfix 

git checkout feature1 
git merge master 
+0

संभव [डुप्लिकेट] (http://stackoverflow.com/q/2701790/720999) – kostix

उत्तर

31

क्योंकि वहाँ वास्तव में Git में प्रथम श्रेणी के नाम बदलने की कार्रवाई की कोई अवधारणा है, यह सिर्फ "का पता लगाता है" फाइल अंतर के लिए एक सीमा का उपयोग कर नाम बदलता है। आपकी फाइलें शायद बहुत अलग हैं।

के साथ विलय का प्रयास करें: git merge master -s recursive -X rename-threshold=5%

+0

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

+1

@ सेनएडकिन्सन क्योंकि डिफ़ॉल्ट विलय रणनीति केवल अंतिम परिणाम विलय करती है, प्रत्येक प्रतिबद्धता नहीं। तो यदि नाम बदलने के बाद फ़ाइल को किसी अन्य प्रतिबद्धता में बदला गया था, तो यह अब थ्रेसहोल्ड को पूरा नहीं कर सकता है, भले ही यह पहले किया गया हो। – gcscaglia

+0

ध्यान दें कि 'नाम बदलें' में '%' महत्वपूर्ण है। –

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

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