2010-10-06 11 views
5

मैं एक (एक तरह से) 3-जिस तरह से संघर्ष संकल्प का उपयोग करने के हमेशा मर्ज Git मजबूर करने के लिए करना चाहते हैं। इसके अलावा, मैं इसे एकल लाइनों को चुनने में सक्षम होने के बिंदु पर करना चाहता हूं।Git का उपयोग कर कोड के चुनिंदा लाइनों विलय?

फिलहाल मैं दो शाखाओं का विलय कर रहा हूँ। हालांकि, यदि संभव हो, तो मैं जानना चाहता हूं कि कई शाखाओं को विलय करते समय भी यह कार्य कैसे करें।

उत्तर

2

गिट डिफ़ॉल्ट रूप से 3-तरफा विलय करने की कोशिश करता है (recursive 2 हेड के लिए रणनीति, और octopus 3+ सिर के लिए रणनीति)।

अगर आप चाहते हैं 3-जिस तरह से संकल्प विकल्पों जब मैन्युअल रूप से विलय को देखने के लिए, diff3 को merge.conflictstyle config विकल्प सेट करके देखें।

(कि विकल्प पर जानकारी के लिए git-merge man page का विन्यास अनुभाग देखें।)

0

ब्लॉग पोस्ट "Five advanced Git merge techniques" करता diff3 सेटिंग पर और भी अधिक जानकारी दे: का उपयोग कर

बारी diff3 संघर्ष git config --global merge.conflictstyle diff3

  • खंड के मूल सामग्री,
  • ऊपर आपके परिवर्तनों के साथ
  • और
  • उनकी (शाखा:
    diff3 संघर्ष शैली नई ||||||| मार्कर और ======= मार्करों, जो इंगित करता है के बीच एक अतिरिक्त खंड कहते हैं इसमें विलय किया जा रहा है) नीचे परिवर्तन।
यहां तक ​​कि एक diff उपकरण के बिना

, आदेश git show मदद कर सकते हैं:

आप किसी मर्ज के अंदर हैं, तो आप एक विशेष :N: वाक्य रचना, जहां N एक नंबर का उपयोग कर सकते है स्वचालित रूप से चयन करने के लिए मर्ज माता-पिता में से एक।

  • 1 का चयन करता है आम आधार प्रतिबद्ध (कम संशोधन),
  • 2 अपने संस्करण ("mine") का चयन करता है, और
  • 3 अपने संस्करण (उच्च संशोधन) का चयन करता है।

तो git show :3:foobar.txtfoobar.txt की नदी के ऊपर संस्करण को दर्शाता है।