2011-11-16 8 views
238

मेरे पास शाखा 1 से ब्रांच किए गए शाखाएं हैं।विवादित गिट रिबेस के मध्य में "उनके" परिवर्तन कैसे प्राप्त करें?

चलो कहते हैं कि जब वर्तमान branch1 पर branch2 रिबेसिंग, जबकि संघर्ष को हल करने दो, मैं लेने के लिए कुछ (सभी नहीं) "उनके" (यानी branch1) फ़ाइलों के रूप में है फैसला। मैं यह कैसे कर सकता हूं?

मैंने कोशिश की:

git checkout branch1:foo/bar.java 
fatal: reference is not a tree: TS-modules-tmp:foo/bar.java 

git checkout refs/heads/branch1:foo/bar.java 
fatal: reference is not a tree: refs/heads/TS-modules-tmp:foo/bar.java 
+29

नोट: यदि आप शाखा 1 पर शाखा 2 को पुनर्जीवित कर रहे हैं, तो रीप्लेइंग शाखा 1 के सापेक्ष होता है, इसलिए "उनका" वास्तव में शाखा 2 है और "हमारा" शाखा 1 है। http://git.661346.n2.nabble.com/Counter-intuitive-results-for-git-show-and-git-checkout-during-rebase-with-conflict-td2370354.html –

+2

https: // github.com/git/git/commit/f30301657b68561392d910f6196380dd3976549e – VonC

उत्तर

317

आप उपयोग करना चाहते हैं:

git checkout --ours foo/bar.java 
git add foo/bar.java 

यदि आप ours को रीबेज करने के दौरान मास्टर पर एक शाखा सुविधा_एक्स को रीबेज करते हैं तो फीचर_एक्स में मास्टर और theirs को संदर्भित किया जाता है।

रूप git-rebase docs में बताया:

ध्यान दें कि एक रिबेस पुनः प्रत्येक शाखा के शीर्ष पर काम कर शाखा से प्रतिबद्ध द्वारा काम करता है मर्ज करें। इस वजह से, जब एक मर्ज विवाद होता है, तो हमारे पक्ष के रूप में रिपोर्ट की गई पुन: श्रृंखला श्रृंखला है, < अपस्ट्रीम > से शुरू होती है, और उनका काम शाखा है। दूसरे शब्दों में, पक्षों को बदल दिया जाता है।

अधिक जानकारी के लिए read this thread

2

यदि आप किसी अन्य शाखा से एक विशेष फ़ाइल को खींचने के लिए चाहते हैं, बस

git checkout branch1 -- filenamefoo.txt 

यह करना वर्तमान पेड़

में एक शाखा से फ़ाइल का एक संस्करण खींच लेंगे
+20

यह संभवतः एक रिबेस के बीच में एक बुरा विचार होगा क्योंकि यह उस शाखा के सिर से फ़ाइल खींच लेगा, अलग-अलग सिर बिंदु पर नहीं, आप एक विवाद में होंगे राज्य को दोबारा – Clintm

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