2009-10-06 8 views
5

में एक से अधिक शाखाओं में परिवर्तन की प्रतिबद्धता विशिष्ट उपयोग परिदृश्य:गिट

मेरे पास मास्टर, branch_foo और branch_bar है। सभी अद्यतित हैं। अब, मैं एक "गिट चेकआउट मास्टर" करता हूं और एक बग फिक्स पर काम करता हूं।

आइए कहें कि फिक्स एक ट्रैक की गई फाइल पर थी जो सभी शाखाओं पर एक ही राज्य में है - यानी। फिक्स से पहले, प्रत्येक शाखा से फ़ाइल का एक अंतर परिणाम में कोई अंतर नहीं होता है।

क्या इस फिक्स को सभी शाखाओं में करने का कोई तरीका है?

उत्तर

5

मुझे उम्मीद है कि git cherry-pick वह है जो आप चाहते हैं।

पहली शाखा में फिक्स करने के बाद, आप git cherry-pick का उपयोग अन्य शाखाओं में विलय करने के लिए कर सकते हैं। Git & Working on multiple branches

+0

हाँ मैं के बारे में Git चेरी ले सोचा। बस सोच रहा था कि क्या एक तेज रास्ता था। – Carl

+0

धन्यवाद :) संबंधित प्रश्न बिल्कुल वही था जो मुझे चाहिए था। – Carl

9

यह करने के लिए आम दृष्टिकोण है "ऊपर की तरफ विलय":

इतने पर यह संबंधित सवाल ब्याज की हो सकती है। man gitworkflows से:

हमेशा अपने फ़िक्स को सबसे पुरानी समर्थित शाखा में प्रतिबद्ध करें जिसके लिए उन्हें आवश्यकता होती है। फिर (समय-समय पर) एकीकरण शाखाओं को एक दूसरे में ऊपर विलय करें।

यह फिक्सेस का एक बहुत नियंत्रित प्रवाह देता है। यदि आप देखते हैं कि आपने एक फिक्स लागू किया है उदा। मास्टर जो रखरखाव में भी आवश्यक है, आपको इसे चेरी-लेने की आवश्यकता होगी (गिट-चेरी-पिक (1) का उपयोग करके) नीचे। यह कुछ बार होगा और चिंता करने के लिए कुछ भी नहीं है जबतक कि आप इसे अक्सर नहीं करते।

पहली विधि निश्चित रूप से पसंदीदा है - यह केवल एक बार अपने रेपो में प्रतिबद्ध होना अच्छा है, और प्रत्येक शाखा में यह कैसे प्राप्त हुआ है इसका इतिहास देखने में सक्षम होना चाहिए। जीवन सही नहीं है, हालांकि, और आप कभी-कभी दूसरी श्रेणी में खुद को खोज लेंगे। उस स्थिति काफी आम हो जाता है, तो आप शायद की तरह

multi-cherry-pick <commit> <branch> [<branch>...] 

जो बदले में प्रत्येक शाखा द्वारा चेक आउट करने और चेरी उठाता दिया प्रतिबद्ध एक स्क्रिप्ट लिख सकते हैं।

5

हां, वहां है। अलग विषय (फीचर) शाखा (पुरानी शाखा/सबसे पुरानी स्थिति को बंद करना) पर इस प्रतिबद्धता को बनाएं, और फिर इस विषय शाखा को अपनी इच्छित शाखा में विलय करें।

यह वर्कफ़्लो उदाहरण के लिए जूनियो सी हमानो (गिट के रखरखाव) द्वारा Never merging back ब्लॉग पोस्ट में वर्णित है।

है कि मोटे तौर पर क्या Jefromi wrote लिखा

+0

धन्यवाद। हाँ, मैं विषय शाखाओं का उपयोग कर समाप्त हो गया। प्रश्न टिम के लिए स्वीकृत उत्तर मुझे निर्देशित किया गया था कि आप भी लिखे गए थे और वही था जो मुझे चाहिए था :) – Carl