विरोधी विद्रोह के बीच "अपने" परिवर्तन कैसे प्राप्त करें?


349

मेरे पास परस्पर विरोधी शाखाएं हैं, शाखा 1 से शाखा 2 शाखा।

मान लीजिए कि टकरावों का समाधान करते समय, branch2करंट पर रिबासिंग branch1करते समय, मैं " as " (जैसे ) फाइलों में से कुछ (सभी नहीं) लेने का फैसला करता हूं 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

41
नोट: यदि आप ब्रांच 1 पर ब्रांच 2 रिबास कर रहे हैं, तो रीप्ले करना ब्रांच 1 के सापेक्ष होता है, इसलिए "उनका" वास्तव में ब्रांच 2 है और "हमारा" ब्रांच 1 है। git.661346.n2.nabble.com/…
श्री फूज

2
यह भी देखें github.com/git/git/commit/…
VonC

1
इसने मुझे लगभग 20 घंटे के मेहनती काम के लिए खर्च किया। मैंने ईमानदारी से सोचा था कि "हमारा" हमेशा काम की नकल होगा।
थियोडोर आर। स्मिथ

जवाबों:


496

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

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

यदि आप एक शाखा के feature_xखिलाफ master(यानी git rebase masterशाखा पर चलते समय feature_x) रिबास करते हैं, तो रिबासिंग के दौरान और इसके लिए oursसंदर्भित करता है ।mastertheirsfeature_x

जैसा कि git-rebase डॉक्स में बताया गया है :

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

अधिक जानकारी के लिए इस धागे को पढ़ें


0

यदि आप किसी विशेष शाखा को दूसरी शाखा से खींचना चाहते हैं तो बस करें

git checkout branch1 -- filenamefoo.txt

यह फ़ाइल के एक संस्करण को एक शाखा से वर्तमान पेड़ में खींच लेगा


35
यह शायद एक रिबेस के बीच में एक बुरा विचार होगा क्योंकि यह उस ब्रांच के हेड से फाइल
खींचेगा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.