2015-09-14 7 views
5

में एक शाखा को किसी अन्य मौजूदा शाखा में डुप्लिकेट करने के लिए कैसे मैं विलय के बिना एक शाखा में सभी शाखाओं (मौजूदा शाखा) में सभी परिवर्तनों को धक्का देना चाहता हूं।गिट

उदाहरण के लिए, दो शाखाओं शाखा 1 शाखा 2 पर विचार करें। शाखा 1 और शाखा 2 ट्रैक मूल/शाखा 1 और मूल/शाखा 2 दोनों क्रमशः।

Branch1 है करता है ए, बी, सी, डी, ई, एफ Branch2 है करता है ए, बी, डी, एफ

मैं बिल्कुल Branch1 तरह Branch2 बनाने के लिए करना चाहते हैं। चेरी-पिकिंग और विलय से संघर्ष होगा जो मैं समय को हल करने में नहीं बिताना चाहता हूं, क्योंकि मैं जो करने की कोशिश कर रहा हूं वह है कि शाखा 1 को शाखा 1 में अंधाधुंध कर रहा है।

मैं द्वारा

git checkout branch1 # Moves to branch1 
git push origin :branch2 # Deletes remote branch origin/branch2 
git branch -d branch2 # Deletes the local copy of this branch 
git pull 
git push origin HEAD:branch2 # Creates new branch in remote repository from the HEAD at local branch branch1 

यह करने के लिए कर रहा हूँ वहाँ मर्ज आदेशों में कुछ --force विकल्पों के माध्यम से ऐसा करने का एक बेहतर तरीका है। मैं एक ही नाम के साथ एक नई शाखा बनाने के लिए हर बार शाखा को हटाना नहीं चाहता हूं।

धन्यवाद

+1

संभव डुप्लिकेट [कैसे Git के साथ एक और शाखा के लिए एक शाखा पुनर्स्थापित करने के लिए?] (Http://stackoverflow.com/questions/15943434/how-to-reset-a-branch- टू-ए-शाखा-साथ-गिट) – Joe

+0

लेकिन यदि आपका संघर्ष संघर्ष में हल हो जाता है, तो फिर पृथ्वी पर क्यों आप अंधेरे से सबकुछ डंप करना चाहते हैं? – DevDonkey

+0

'गिट चेकआउट शाखा 2' की तरह रीसेट नहीं होगा 'गिट रीसेट --हार्ड शाखा 1' आपके लिए एक विकल्प है? – Melebius

उत्तर

-2
git checkout branchA 
git merge -X theirs branchB 
की
+0

-X केवल रणनीति-विकल्प है। डिफ़ॉल्ट रणनीति रिकर्सिव केवल संघर्ष-विकल्प के लिए रणनीति-विकल्प का उपयोग करती है। गिट-मर्ज सहायता देखें। – Weidenrinde

+0

संभावित समाधानों की एक सूची: http://stackoverflow.com/questions/4911794/git-command-for-making-one-branch-like- अन्य – Weidenrinde