2010-08-04 14 views
74

में एक साथ 2 शाखाओं को विलय करना मैंने केवल जीआईटी का उपयोग करना शुरू कर दिया है और यह अद्भुत सोच रहा है, हालांकि मैं merge कमांड के बारे में थोड़ा उलझन में हूं।जीआईटी

हमें बताएं कि हमारे पास शाखा "ए" में एक कार्यरत परियोजना है।

मैं घर जाता हूं और इस शाखा में बदलाव करता हूं और इसे "बी" के रूप में सहेजता हूं। एक और प्रोग्रामर "ए" में परिवर्तन करता है और इसे "सी" के रूप में सहेजता है।

क्या दो शाखाओं "बी" और "सी" को एक साथ विलय करने का कोई तरीका है, फिर परिवर्तनों को एक नई शाखा के रूप में स्वीकार करें, "डी" कहें?

या 'विलय' का बिंदु गुम है?

+0

किसी अन्य शाखा में 'परिवर्तनों को सहेजने' की आवश्यकता नहीं है। ए को काम करें और फिर उन अलग-अलग ए को एक साथ मिलाएं – knittl

+0

मैं फ़ॉलो नहीं करता हूं। ए मेरे स्थानीय कंप्यूटर पर होगा, dev1 के पास उसके कंप्यूटर पर ए की एक प्रति होगी, और dev2 में उसके कंप्यूटर पर ए की एक प्रति है। दोनों देवता परिवर्तन करते हैं, मैं इन परिवर्तनों को एक साथ कैसे मिला सकता हूं? – dotty

+0

देखें । देवताओं को शायद अपने भंडार को कहीं भी पहले – knittl

उत्तर

127

merge दो (या अधिक) शाखाओं को एक साथ लाने के लिए उपयोग किया जाता है।

एक छोटे से उदाहरण:

# on branch A: 
# create new branch B 
$ git checkout -b B 
# hack hack 
$ git commit -am "commit on branch B" 

# create new branch C from A 
$ git checkout -b C A 
# hack hack 
$ git commit -am "commit on branch C" 

# go back to branch A 
$ git checkout A 
# hack hack 
$ git commit -am "commit on branch A" 

तो अब वहाँ बी और सी से परिवर्तन वापस ए, चेकआउट ए (करने के लिए तीन अलग-अलग शाखाओं (अर्थात् एबी और सी) विभिन्न मदों

साथ कर रहे हैं पहले से ही इस उदाहरण में किया है) और फिर मर्ज आदेश का उपयोग करें:

# create an octopus merge 
$ git merge B C 

अपने इतिहास फिर कुछ इस तरह दिखेगा:

…-o-o-x-------A 
     |\  /| 
     | B---/ | 
     \ /
     C---/ 

यदि आप रिपोजिटरी/कंप्यूटर सीमाओं में विलय करना चाहते हैं, तो git pull कमांड पर एक नज़र डालें, उदा। शाखा ए के साथ पीसी से (यह उदाहरण दो नए काम करेगा):

# pull branch B 
$ git pull ssh://host/… B 
# pull branch C 
$ git pull ssh://host/… C 
+0

को धक्का/अपलोड करने की आवश्यकता है, मुझे शाखाओं को विलय करते समय "सामग्री विवाद" त्रुटि मिली। – dotty

+0

इसका मतलब है कि दोनों शाखाओं ने कोड का एक ही टुकड़ा बदल दिया है। conflitcs को ठीक करें, 'गिट विरोधाभासी_फाइल' जोड़ें और फिर 'गिट प्रतिबद्ध करें' – knittl

+0

कहें कि ए में फ़ाइल "हैलो" शब्द निहित है, ए ने इसे "हेल्लो" में संशोधित किया है और बी इसे "हैलो वर्ल्ड" में संशोधित किया है। इन फ़ाइलों को विलय करने का नतीजा क्या होगा? – dotty

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