छोटी टीमों के लिए वर्कफ़्लो


11

मैं एक छोटी सी टीम में लागू करने के लिए git वर्कफ़्लो पर काम कर रहा हूँ। वर्कफ़्लो में मुख्य विचार:

  • एक साझा प्रोजेक्ट मास्टर है जिसे सभी टीम सदस्य लिख सकते हैं
  • सभी विकास विशेष रूप से सुविधा शाखाओं पर किया जाता है
  • फीचर शाखाएं शाखा लेखक के अलावा टीम के किसी सदस्य द्वारा समीक्षा की जाती हैं
  • फीचर शाखा को अंततः साझा मास्टर में मिला दिया जाता है और चक्र फिर से शुरू होता है

लेख में इस चक्र के चरणों के बारे में विस्तार से बताया गया है:

https://github.com/janosgyerik/git-workflows-book/blob/small-team-workflow/chapter05.md

क्या यह समझ में आता है या मुझे कुछ याद आ रहा है?

जवाबों:


16

मुझे git flow ब्रांचिंग मॉडल पसंद है । मास्टर शाखा को ज्यादातर समय अकेला छोड़ दिया जाता है, इसमें केवल रिलीज़ होते हैं। विकसित शाखा हर समय स्थिर होनी चाहिए, और सुविधा शाखाएं टूट सकती हैं।

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


जैसा कि मैंने समझा कि यह प्रवाह है और निरंतर एकीकरण काम करने के वैकल्पिक तरीके हैं और वास्तव में संयुक्त नहीं हो सकते। Git flow में कोड का विकास तभी होता है जब कोई फीचर पूरा होता है। निरंतर एकीकरण में सभी कोड प्रत्येक दिन कम से कम एक बार एक साझा शाखा में विलय कर दिए जाते हैं, भले ही यह तुरंत कोई नई सुविधा प्रदान न करता हो।
बीडीएसएल

7

मुझे लगता है कि आप विषय अखंडता को याद कर रहे हैं। यह हर विकास सेटअप का हिस्सा होना चाहिए।

सुविधा शाखाओं के साथ आपको समस्या है, कि आप लगातार एकीकृत नहीं करते हैं, लेकिन केवल एक सुविधा के पूरा होने के बाद।

यदि सुविधा का संक्षिप्त रूप रहता है, तो यह स्वीकार्य हो सकता है, लेकिन यह निश्चित रूप से कुछ है जिस पर विचार करना चाहिए।

एक और वैकल्पिक विकल्प प्रत्येक सुविधा शाखा के लिए CI बिल्ड सेटअप करना है। यह सुनिश्चित करने में मदद करता है, लेकिन यह एकीकरण नहीं है। यह स्पष्ट हो जाता है कि एक बार जब आप फ़ीचर ए और न ही फ़ीचर बी में नहीं दिखते हैं, लेकिन जिस क्षण आप फ़ीचर ए और बी को एकीकृत करते हैं

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


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

1
ज़रूर, लेकिन जैसा कि कहा गया है, यह निरंतर-एकीकरण नहीं है, बल्कि एक-फ़ीचर-एकीकरण का है, जो अच्छा हो सकता है, लेकिन यह समान नहीं है
जेन्स स्काउडर

1
मुझे लगता है कि सुविधा शाखाएं बहुत उपयोगी हैं, क्योंकि उन्हें स्थिर होने की आवश्यकता नहीं है। इसका मतलब है कि आप एक बड़ी प्रतिबद्धता होने के बजाय अक्सर कमिट कर सकते हैं।
अर्जन

एक स्वचालित बिल्ड प्रक्रिया जो एक शेड्यूल (CI सिस्टम) पर चलती है, अपरिहार्य है। इसे अक्सर चलाने की आवश्यकता होती है ताकि संकलित समस्याओं को ढूंढा जा सके और उन्हें जल्दी ठीक किया जा सके। देव टीमों को निर्माण विफलताओं को सर्वोच्च प्राथमिकता देनी चाहिए। जब वे पहली सतह पर होते हैं तो इस प्रकार की समस्याओं को ठीक करना बहुत आसान होता है।
नाथन पिलिंग

1
सीआई का उपयोग करने वाली हमारी परियोजनाओं के लिए (हमारे पास कुछ विरासत परियोजनाएं हैं जो इस समय इसका उपयोग नहीं कर सकती हैं), हम सच्चे सीआई के लिए मास्टर करने के लिए प्रतिबद्ध हैं, हमारी विरासत परियोजनाओं के लिए हम गिट फ्लो ब्रांचिंग मॉडल का उपयोग करते हैं। फ़ीचर शाखाएं एक CI अवरोधक हैं यदि आप मुझसे पूछते हैं, तो वे इसे पूरी तरह से कठिन बना देते हैं (न केवल तब जब यह समाप्त हो जाता है) एकीकृत। हम सुविधाओं पर काम करते रहते हैं और अंतिम कार्य मूल रूप से इसे चालू करना है, लेकिन कोड हमेशा परियोजना में होता है।
इलियट ब्लैकबर्न

1

आप gitflow या Twgit से प्रेरित हो सकते हैं ।

gitflow अपने दृष्टिकोण को संक्षेप में बताता है:

विन्सेंट ड्रिसेन के ब्रांचिंग मॉडल के लिए उच्च-स्तरीय रिपॉजिटरी ऑपरेशन प्रदान करने के लिए एक्सटेंशन दें।

ट्विट्ज खुद को इस प्रकार बताता है:

ट्विटिट एक मुक्त और खुला स्रोत है जो कि फीचर, हॉटफ़िक्स और गिट रिपॉजिटरी पर रिलीज़ करने के लिए सहायक उपकरण है। यह हमारे प्रलेखन में वर्णित ब्रंचिंग मॉडल को अपनाने के लिए सरल, उच्च-स्तरीय कमांड प्रदान करता है। समर्थित ओएस: डेबियन / उबंटू लिनक्स, मैक ओएस एक्स।

दोनों उपकरण गिटब से उपलब्ध हैं ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.