पहली बात जो मैं स्पष्ट करना चाहता हूं, वह यह है कि शाखा के नाम एक विशिष्ट प्रतिबद्धता के लिए केवल एक अन्य नाम हैं। एक कमिट वह है जो काम करता है, जब आप खींचते हैं, तो मर्ज को आगे बढ़ाते हैं। प्रत्येक कमेटी की एक विशिष्ट आईडी होती है।
जब आप $ git मर्ज करते हैं, तो वास्तव में क्या हो रहा है, git अपनी शाखा को आगे भेजने की कोशिश करता है ताकि संदर्भित शाखा प्रतिबद्ध हो (दूसरे शब्दों में दोनों शाखा नाम एक ही वचन की ओर इशारा करते हैं।) यह परिदृश्य git के लिए सबसे आसान है। सौदा करने के लिए, क्योंकि कोई नई प्रतिबद्धता नहीं है। लिलिपैड पर कूदने वाले मास्टर के बारे में सोचें कि आपकी शाखा चिल कर रही है। यह संभव नहीं है - कोई भी ff ध्वज सेट करने के लिए, जिस स्थिति में git कोई भी नया विवाद पैदा करेगा चाहे कोई भी कोड संघर्ष हो।
ऐसी स्थिति में जहां दो शाखाओं के बीच आपस में विलय करने की कोशिश कर रहे हैं (आमतौर पर दो शाखाएं जिनकी प्रतिबद्ध इतिहास अतीत में एक आम प्रतिबद्धता साझा करता है), तेजी से आगे काम नहीं करेगा। git अभी भी स्वचालित रूप से फ़ाइलों को मर्ज करने में सक्षम हो सकता है, इसलिए जब तक कि एक ही पंक्ति एक परस्पर विरोधी फ़ाइल में दोनों शाखाओं द्वारा बदल नहीं दी गई थी। इस स्थिति में, git आपके लिए परस्पर विरोधी फ़ाइलों को मर्ज कर देगा और स्वचालित रूप से उन्हें प्रतिबद्ध कर देगा। आप प्रीव्यू कर सकते हैं कि git ने $ git को कैसे अलग किया - अलग किया। या आप -no-प्रतिबद्ध ध्वज को मर्ज कमांड में पास कर सकते हैं, जो आपके सूचकांक में संशोधित फ़ाइलों को छोड़ देगा जिसे आपको जोड़ना और प्रतिबद्ध करना होगा। लेकिन आप $ git को इन फ़ाइलों को अलग करने के लिए समीक्षा कर सकते हैं कि मर्ज क्या बदलेगा।
तीसरा परिदृश्य यह है कि जब टकराव होता है तो गिट स्वतः हल नहीं हो सकता। इस मामले में आपको उन्हें मैन्युअल रूप से मर्ज करने की आवश्यकता होगी। मेरी राय में यह एक मर्ज के साथ करना सबसे आसान है, जैसे कि अरैक्सिस मर्ज या पी 4 मर्ज (फ्री)। किसी भी तरह से, आपको प्रत्येक फ़ाइल को एक-एक करके करना होगा। यदि मर्ज कभी अटका हुआ लगता है, तो इसे कुतरने के लिए $ git मर्ज - कॉन्टिन्यू का उपयोग करें। Git आपको बताना चाहिए कि क्या यह जारी नहीं रह सकता है, और यदि ऐसा है तो क्यों नहीं। यदि आपको लगता है कि आप किसी बिंदु पर मर्ज को कम कर रहे हैं, तो आप $ git मर्ज --abort कर सकते हैं, और कोई भी मर्ज पूर्ववत कर देगा और आप शुरू कर सकते हैं। जब आप कर लें, तो आपके द्वारा मिलाई गई प्रत्येक फ़ाइल एक संशोधित फ़ाइल होगी जिसे जोड़ने और प्रतिबद्ध करने की आवश्यकता है। आप यह सत्यापित कर सकते हैं कि फ़ाइलें $ git स्थिति के साथ कहाँ हैं। यदि आपने अभी तक मर्ज की गई फ़ाइलों को कमिट नहीं किया है। मर्ज को पूरा करने के लिए आपको ऐसा करने की आवश्यकता है।
git commit gf2n.cpp -m "Hand merge gf2n.cpp due to conflicts"
लेता हूं, तो ऐड का प्रदर्शन करता हूं, और फिर कमिटमेंट के साथ प्रदर्शन करने का प्रयास करता हैfatal: cannot do a partial commit during a merge.
। और निश्चित रूप से, "आंशिक रूप से कमिट" जीआईटी मैन पेजों में कहीं भी प्रलेखित या चर्चा नहीं करता है । एक टूटे हुए गधे उपकरणgit merge
में तय परिणाम के बाद प्रदर्शनPlease, commit your changes before you can merge.
...