हमने हाल ही में GitLab का उपयोग शुरू किया है।
वर्तमान में "केंद्रीकृत" वर्कफ़्लो का उपयोग कर रहा है।
हम गितुब-प्रवाह की ओर बढ़ने पर विचार कर रहे हैं लेकिन मैं यह सुनिश्चित करना चाहता हूं।
गिट-फ्लो बनाम गिटब-प्रवाह के पेशेवरों और विपक्ष क्या हैं ?
हमने हाल ही में GitLab का उपयोग शुरू किया है।
वर्तमान में "केंद्रीकृत" वर्कफ़्लो का उपयोग कर रहा है।
हम गितुब-प्रवाह की ओर बढ़ने पर विचार कर रहे हैं लेकिन मैं यह सुनिश्चित करना चाहता हूं।
गिट-फ्लो बनाम गिटब-प्रवाह के पेशेवरों और विपक्ष क्या हैं ?
जवाबों:
जैसा कि निकोलस ज़कस द्वारा " कंपनी के अंदर गीथहब वर्कफ़्लोज़ " पर अपने लेख में गिटमिनूट्स एपिसोड 17 में चर्चा की गई है :
गिट-फ्लो Git में परिवर्तन के प्रबंधन के लिए एक प्रक्रिया है जो विंसेंट ड्रिसेन द्वारा बनाई गई थी और इस प्रवाह के प्रबंधन के लिए कुछ Git एक्सटेंशन के साथ ।
Git प्रवाह के पीछे सामान्य विचार कई अलग शाखाओं कि हमेशा मौजूद हैं, एक अलग उद्देश्य के लिए प्रत्येक के लिए है:master
,develop
,feature
,release
, औरhotfix
।
फ़ीचर या बग डेवलपमेंट की प्रक्रिया एक ब्रांच से दूसरी ब्रांच में प्रवाहित होने से पहले ही रिलीज़ हो जाती है।उत्तरदाताओं में से कुछ ने संकेत दिया कि वे
git-flow
सामान्य रूप से उपयोग करते हैं ।
कुछ के साथ शुरू हुआgit-flow
और उससे दूर चला गया।दूर जाने का प्राथमिक कारण यह है कि
git-flow
प्रक्रिया निरंतर (या निकट-निरंतर) परिनियोजन मॉडल से निपटना कठिन है।
सामान्य भावना यह है किgit-flow
अधिक पारंपरिक रिलीज मॉडल में उत्पादों के लिए अच्छी तरह से काम करता है, जहां हर कुछ हफ्तों में एक बार रिलीज होती है, लेकिन जब आप एक या अधिक दिन में एक बार रिलीज कर रहे होते हैं तो यह प्रक्रिया काफी हद तक टूट जाती है ।
संक्षेप में:
संभव के रूप में सरल के रूप में एक मॉडल के साथ शुरू करें (जैसे GitHub प्रवाह होता है), और यदि आपको आवश्यकता हो तो एक अधिक जटिल मॉडल की ओर बढ़ें।
आप GitHub- फ्लो पर आधारित एक साधारण वर्कफ़्लो का एक दिलचस्प चित्रण देख सकते हैं :
" एक साधारण गिट ब्रांचिंग मॉडल ", जिसमें मुख्य तत्व हैं:
master
हमेशा तैनात रहना चाहिए।- सुविधा शाखाओं के माध्यम से किए गए सभी परिवर्तन (पुल-अनुरोध + मर्ज)
- संघर्षों से बचने / हल करने के लिए छूट; में विलय
master
एक वास्तविक और पूरी और मजबूत कार्यप्रवाह के लिए, को देखने के gitworkflow (एक शब्द) ।
कोई सिल्वर बुलेट वर्कफ़्लो नहीं है जहाँ सभी को पालन करना चाहिए, क्योंकि सभी मॉडल उप-इष्टतम हैं। यह कहते हुए कि, आप नीचे दिए गए बिंदुओं के आधार पर अपने सॉफ़्टवेयर के लिए उपयुक्त मॉडल का चयन कर सकते हैं;
उत्पादन में कई संस्करण - Git-flow का उपयोग करें
यदि आपका कोड उत्पादन में कई संस्करण हैं (जैसे कि ऑपरेटिंग सिस्टम, ऑफिस पैकेज, कस्टम एप्लिकेशन आदि जैसे विशिष्ट सॉफ़्टवेयर उत्पाद) तो आप git-flow का उपयोग कर सकते हैं। मुख्य कारण यह है कि आपको अगले संस्करण को विकसित करते समय उत्पादन में पिछले संस्करणों का लगातार समर्थन करने की आवश्यकता है।
उत्पादन सरल सॉफ्टवेयर में एकल संस्करण - जीथब-प्रवाह का उपयोग करें
यदि आपका कोड हर समय (यानी वेब साइटों, वेब सेवाओं आदि) के उत्पादन में केवल एक ही संस्करण है, तो आप जीथब-फ्लो का उपयोग कर सकते हैं। मुख्य कारण यह है कि आपको डेवलपर के लिए जटिल चीजों की आवश्यकता नहीं है। एक बार डेवलपर ने एक फीचर को खत्म कर दिया या एक बगफिक्स को खत्म कर दिया जो तुरंत उत्पादन संस्करण में पदोन्नत हो गया।
उत्पादन में एकल संस्करण लेकिन बहुत जटिल सॉफ्टवेयर - Gitlab- प्रवाह का उपयोग करें
फेसबुक और जीमेल जैसे बड़े सॉफ्टवेयर, आपको अपनी ब्रांच और मास्टर ब्रांच के बीच तैनाती की शाखाओं को पेश करने की आवश्यकता हो सकती है, जहां CI / CD> टूल चल सकते हैं, इससे पहले कि यह उत्पादन में पहुंच जाए। आइडिया को लाखों लोगों द्वारा उपयोग किए जाने के बाद से उत्पादन संस्करण के लिए अधिक सुरक्षा प्रदान करना है।
मैं एक साल से अधिक के लिए git-flow मॉडल का उपयोग कर रहा हूं और यह ठीक है।
लेकिन यह वास्तव में इस बात पर निर्भर करता है कि आपके आवेदन को कैसे विकसित और तैनात किया जाएगा।
जब आपके पास एक ऐसा एप्लिकेशन होता है, जिसमें धीमी गति से विकास / परिनियोजन प्रवाह होता है।
लेकिन उदाहरण के लिए, GitHub की तरह हमारे पास एक एप्लिकेशन है जिसमें एक तेज़ विकास / परिनियोजन प्रवाह है, हम रोज़ तैनात करते हैं, और कभी-कभी दिन में कई बार, इस मामले में, git-flow मेरी राय में सब कुछ धीमा कर देता है, और मैं GHHub का उपयोग करता हूं बहे।
दूसरी बात पर विचार करना है, git-flow मानक git नहीं है, इसलिए आप हो सकते हैं, और जब मैं कहता हूं कि आप कर सकते हैं, तो मेरा मतलब है, आपको ऐसे डेवलपर मिलेंगे जो इसे नहीं जानते हैं, और फिर सीखने की अवस्था है, अधिक चीजों को गड़बड़ाने का मौका। जैसा कि ऊपर उल्लेख किया गया है, किसी ने गिट-प्रवाह के उपयोग को अधिक आसान बनाने के लिए स्क्रिप्ट का एक सेट विकसित किया है, इसलिए आपको सभी आदेशों को याद रखने की आवश्यकता नहीं है, यह आपको कमांड के साथ सहायता करेगा, लेकिन वास्तविक प्रवाह को याद रखना आपका काम है , मैं एक से अधिक बार आया हूं जब एक डेवलपर को यह नहीं पता था कि क्या यह एक हॉटफिक्स या सुविधा है, या सबसे खराब तब भी जब वे प्रवाह और सामान को याद नहीं रख सकते।
कम से कम एक GUI है जो Mac और Windows SourceTree के लिए git-flow का समर्थन करता है ।
इन दिनों, मैं GitHub प्रवाह की ओर अधिक झुकाव कर रहा हूं, इसकी सरलता और प्रबंधन करने में आसान होने के कारण। इसके अलावा, "अक्सर जल्दी तैनात होने के कारण" ...
उम्मीद है की यह मदद करेगा
git flow release...
आवेदन को तैनात करने के लिए गिटब क्रियाओं के संयोजन में उपयोग करना है। अपनी मूल प्रतिक्रिया में, मैंने उल्लेख किया कि हमने एक दिन में कई बार जारी किया, इससे गिट-फ्लो का उपयोग करते समय समस्याएं पैदा हुईं। मेरे विचार से इस परियोजना में git-flow अच्छा काम करेगा क्योंकि हमारे पास एक पूर्व-परिभाषित रिलीज़ चक्र है, जो git-flow का उपयोग करने के लिए प्रमुख विक्रय बिंदुओं में से एक है।