हम एसवीएन से माइग्रेट कर रहे हैं, और शाखाओं का एक गुच्छा विलय कर रहे हैं। व्यापक रूप से सरल बनाने के लिए, हमारे पास एक शाखा बी है जिसे बहुत समय पहले फोर्क किया गया था, और इसका थोड़ा सा विकास हुआ है, आइए सैकड़ों में से 8 फाइलों को संशोधित करें। इस बीच, भारी परिवर्तन मास्टर पर हुआ है:गिट: एक छोटी, लेकिन बहुत पुरानी शाखा कैसे विलय करें?
A
|
X---(a few changes)--- B
|
|(hundreds of changes)
|
HEAD/master
अगर मैं शाखा से "Git मर्ज मास्टर" करते हैं, कई मर्ज संघर्ष दिखाए जाते हैं, क्योंकि बी और सिर अब बहुत अलग हैं। लेकिन ऐसा लगता है (मूर्खतापूर्ण, मेरे लिए) गलत: बी ट्रंक से बहुत दूर नहीं है, यह समय पर वापस एक लंबा रास्ता है।
क्या इस तथ्य का लाभ उठाने का कोई तरीका है? क्या मुझे कोशिश करनी चाहिए और पहले बी को वापस एक्स में विलय करना चाहिए, फिर वहां से हेड तक? क्या आदेश होगा:
- पहचानें संशोधन एक्स कि नई विलय संस्करण से
- अद्यतन सिर के
है एक्स के साथ बी और एक्स
(काफी संभवतः मैं ने कहा है कि पूर्ववर्ती में कुछ बहुत ही बेवकूफ और अन-Git-तरह बातें - उन्हें बाहर बात करने के लिए स्वतंत्र लग रहा है :)।)
क्या आपने दो शाखाओं के बीच एक पैच बनाने और इसे अपने वर्तमान सिर पर लगाने की कोशिश की है। एक्स और बी के बीच –
आपका मतलब है? ऐसा लगता है कि मैं क्या करना चाहता हूं। क्या आप मुझे सही आदेशों पर इंगित कर सकते हैं? –
आपके लिए सबसे अच्छा काम करने के आधार पर कुछ उदाहरण गिट diff हो सकता है X..HEAD foo.cc> foo.patch या git diff X..HEAD> all.patch –