दूसरी शाखा की जाँच के बिना वर्तमान शाखा को दूसरी शाखा में विलय करने के लिए:
तेजी से आगे विलय
यह वास्तव में आसान है। परिभाषा के अनुसार, एक फास्ट-फ़ॉरवर्ड मर्ज का अर्थ है कि शाखा सूचक को प्रतिबद्ध ट्री में आगे ले जाया जाता है। तो आपको बस इतना करना है कि अनुकरण करें :
git branch -f master dev
कैविट्स: यह मानता है कि master
एक कमिट की ओर इशारा करता है जो dev
शाखा या किसी अन्य शाखा में भी है। यदि ऐसा नहीं होता है, तो आप काम खोने का जोखिम उठाते हैं! इसके विपरीत git merge
जब तेजी से आगे बढ़ने पर मर्ज कमिट (या शिकायत) बनेगी , तो यह विधि चुपचाप दूसरी जगह पर जाने के लिए ब्रांच पॉइंटर को मजबूर कर देती है।
यह भी मानता है कि आप केवल रेपो पर काम कर रहे हैं, और / या आप जानते हैं कि आप क्या कर रहे हैं।
युक्ति: यदि आपने किया था git fetch
और आपके पास नए तरीके हैं origin/master
, तो आप master
शाखा का उपयोग किए बिना जाँच कर सकते हैं:
git branch -f master origin/master
मर्ज कमिट के माध्यम से विलय
यह हमेशा संभव नहीं है। मर्ज कमिट बनाने के लिए, आपको मर्ज ऑपरेशन करना होगा। और एक मर्ज ऑपरेशन करने के लिए, आपको दूसरी शाखा में कमिट करना चाहिए जो वर्तमान शाखा में नहीं है।
आप में करता है तो master
शाखा है जो कर रहे हैं नहीं में dev
शाखा, आप कर सकते हैं:
डिस्क्लेमर: यह केवल एक प्रूफ-ऑफ-कॉन्सेप्ट है, बस यह दिखाने के लिए कि कभी-कभी बिना चेक आउट किए दूसरी ब्रांच में मर्ज करना संभव है। यदि आप इसे हर रोज उपयोग करना चाहते हैं, तो आप संभवतः शेल पुनर्निर्देशन का उपयोग करके इसके लिए एक उपनाम बनाना चाहते हैं या इसके लिए एक शेल स्क्रिप्ट बना सकते हैं। फिर, आप प्रश्न में दिखाई गई छोटी प्रक्रिया के लिए एक शेल स्क्रिप्ट भी बना सकते हैं।
git checkout -b temp
git merge --no-ff -e master
git branch -f master temp
git checkout dev
git branch -D temp
स्पष्टीकरण:
- एक अस्थायी शाखा देखें जो वर्तमान शाखा की तरह ही प्रतिबद्ध हो।
मर्ज master
अस्थायी शाखा और प्रक्षेपण में संदेश संपादक प्रतिबद्ध। यदि आप चाहते हैं कि मर्ज ऐसा लगे कि आपने dev
शाखा को मर्ज किया था master
, तो इसे इस से संपादित करें:
Merge branch 'master' into temp
इसके लिए:
Merge branch 'dev'
टिप: आप तेज़ होने के -m "Merge branch 'dev'"
बजाय उपयोग कर सकते हैं -e
।
master
मर्ज कमिट को इंगित करने के लिए ब्रांच पॉइंटर को अपडेट करें ।
- की जाँच करें
dev
शाखा।
- अस्थायी शाखा को हटाएं।
यह अभी भी आपके काम के पेड़ को छूता है, लेकिन न्यूनतम रूप से ऐसा है। यह पेड़ के मूल master
विकास की स्थिति में वापस लाने के लिए सिर्फ एक बार फिर से रोल नहीं करता है । कुछ परवाह नहीं कर सकते हैं, लेकिन दूसरों के लिए यह महत्वपूर्ण हो सकता है।