हमारी कंपनी वर्तमान में एक साधारण ट्रंक / रिलीज़ / हॉटफ़िक्स ब्रांचिंग मॉडल का उपयोग कर रही है और यह सलाह देगी कि ब्रांचिंग मॉडल आपकी कंपनी या विकास प्रक्रिया के लिए सबसे अच्छा काम करते हैं।
वर्कफ़्लोज़ / ब्रांचिंग मॉडल
नीचे इसके तीन मुख्य विवरण हैं जो मैंने देखे हैं, लेकिन वे आंशिक रूप से एक दूसरे के विपरीत हैं या बाद के मुद्दों को हल करने के लिए पर्याप्त नहीं हैं जो हम नीचे वर्णित हैं (जैसा कि नीचे वर्णित है)। इस प्रकार हमारी टीम अब तक इतने बड़े समाधानों को नहीं टालती है। क्या आप कुछ बेहतर कर रहे हैं?
रिबासिंग बनाम विलय (क्रमबद्ध इतिहास बनाम पेचीदा)
pull --rebaseजब तक आपका काम पूरा नहीं हो जाता है, तब तक आपको मेनलाइन पर वापस आने के लिए इंतजार करना चाहिए ? व्यक्तिगत रूप से मैं विलय की ओर झुकता हूं क्योंकि यह एक दृश्य चित्रण रखता है जिसके आधार पर एक कार्य शुरू किया गया था और समाप्त हो गया था, और मैंmerge --no-ffइस उद्देश्य के लिए भी पसंद करता हूं । हालांकि इसमें अन्य कमियां हैं। कई लोगों ने विलय की उपयोगी संपत्ति का एहसास नहीं किया है - कि यह कम्यूटेटिव नहीं है (विषय शाखा को मास्टर में विलय करने का मतलब यह नहीं है कि विषय शाखा में मास्टर विलय करना)।मैं एक प्राकृतिक वर्कफ़्लो की तलाश कर रहा हूँ
कभी-कभी गलतियाँ होती हैं क्योंकि हमारी प्रक्रियाएं विशिष्ट नियमों को सरल नियमों के साथ कैप्चर नहीं करती हैं। उदाहरण के लिए, पहले रिलीज के लिए आवश्यक एक निश्चित रूप से सभी शाखाओं में अपस्ट्रीम को मर्ज करना संभव होने के लिए पर्याप्त रूप से डाउनस्ट्रीम आधारित होना चाहिए (क्या इन शब्दों का उपयोग पर्याप्त रूप से स्पष्ट है?)। हालाँकि ऐसा होता है कि डेवलपर के ठीक होने से पहले इसे ठीक कर दिया जाता है, इसके बाद इसे और नीचे की ओर रखा जाना चाहिए, और अगर इसे पहले से ही धकेला गया (इससे भी बदतर, विलय या इसके आधार पर कुछ) तो विकल्प शेष है चेरी-पिकिंग, इसके संबंधित संकट। ऐसे सरल नियम क्या आप उपयोग करते हैं?इसके अलावा इसमें एक विषय शाखा की अजीबता शामिल है जो आवश्यक रूप से अन्य विषय शाखाओं को छोड़कर (मान लें कि वे एक सामान्य शाखा से शाखित हैं)। डेवलपर्स एक विशेषता को समाप्त करना नहीं चाहते हैं, एक और एक भावना शुरू करने के लिए कोड जैसा उन्होंने अभी लिखा है, अब और नहीं है
मर्ज संघर्ष (चेरी-पिक के कारण) बनाने से कैसे बचें?
मर्ज संघर्ष बनाने का एक निश्चित तरीका क्या लगता है, शाखाओं के बीच चेरी-पिक करना है, उन्हें फिर से विलय नहीं किया जा सकता है? क्या इस स्थिति को हल करने के लिए या तो शाखा में एक ही प्रतिबद्ध लागू करना होगा (यह कैसे करना है?) यह एक कारण है कि मैं बड़े पैमाने पर मर्ज-आधारित वर्कफ़्लो के लिए पुश करने की हिम्मत नहीं करता।
सामयिक शाखाओं में विघटित कैसे करें?
हमें पता चलता है कि विषय शाखाओं से एक समाप्त एकीकरण को इकट्ठा करने के लिए यह बहुत बढ़िया होगा, लेकिन अक्सर हमारे डेवलपर्स द्वारा काम स्पष्ट रूप से परिभाषित नहीं किया जाता है (कभी-कभी "आसपास के रूप में सरल") और अगर कुछ कोड पहले से ही एक "मिस" विषय में चला गया है, ऊपर के प्रश्न के अनुसार इसे फिर से वहाँ से बाहर नहीं निकाला जा सकता है? आप अपनी विषय शाखाओं को परिभाषित / अनुमोदित / स्नातक / जारी करने के साथ कैसे काम करते हैं?
कोड समीक्षा और स्नातक करने जैसी उचित प्रक्रियाएं निश्चित रूप से प्यारी होंगी।
लेकिन हम बस इस बात का प्रबंधन करने के लिए पर्याप्त चीजें नहीं रख सकते हैं - कोई सुझाव? एकीकरण शाखाओं, चित्र?
नीचे संबंधित प्रश्नों की एक सूची है:
- लागू किए गए एप्लिकेशन को हॉटफिक्स योग्य बनाने की अनुमति देने के लिए कुछ अच्छी रणनीतियाँ क्या हैं?
- इन-हाउस विकास के लिए गिट उपयोग के लिए वर्कफ़्लो विवरण
- कॉर्पोरेट लिनक्स कर्नेल विकास के लिए गिट वर्कफ़्लो
- आप विकास कोड और उत्पादन कोड कैसे बनाए रखते हैं? ( इस पीडीएफ के लिए धन्यवाद )
- गिट प्रबंधन जारी करता है
- गेट चेरी-पिक बनाम मर्ज वर्कफ्लो
- कैसे एक से अधिक कॉमेरी लेने के लिए
- आप चयनात्मक फ़ाइलों को गिट-मर्ज के साथ कैसे मिलाते हैं?
- चेरी किस तरह से कमिट्स की रेंज चुनती है और दूसरी ब्रांच में मर्ज होती है
- रिनह गिट वर्कफ्लो
- संशोधन बनाने के लिए git वर्कफ़्लो आप कभी भी मूल में वापस नहीं लाएँगे
- चेरी-एक मर्ज उठाओ
- संयुक्त ओएस और निजी कोड के लिए उचित गिट वर्कफ़्लो?
- गिट के साथ परियोजना को बनाए रखना
- कठबोली Git मर्ज फ़ाइल एक संशोधित माता-पिता / मास्टर के साथ क्यों बदलती है।
- अच्छी कार्यप्रणाली के लिए ब्रांचिंग / रिबासिंग करें
- "Git pull --rebase" मुझे मुसीबत में कब लाएगा?
- बड़ी टीमों में DVCS का उपयोग कैसे किया जाता है?
यह भी देखें कि प्लास्टिक एससीएम कार्य संचालित विकास पर क्या लिखता है , और यदि प्लास्टिक आपकी पसंद नहीं है, तो एनवीआई की ब्रांचिंग मॉडल और उसकी सहायक लिपियों का अध्ययन करें ।