कई टीमों के लिए वर्कफ़्लो गैट


12

हम Git का उपयोग शुरू करने जा रहे हैं (अभी तक इसका उपयोग नहीं कर रहे हैं), और मैं वर्कफ़्लो को परिभाषित करना चाहता हूं।

हमारे पास 4 अलग-अलग वैश्विक स्थानों पर 4 टीमें हैं, एक ही उत्पाद को एक साथ विकसित कर रहे हैं। प्रत्येक टीम उत्पाद के कोड का हिस्सा होती है, लेकिन कभी-कभी उन्हें अन्य टीमों के स्वामित्व वाले कोड में भी बदलाव करना पड़ता है।

क्या ऐसे वातावरण के लिए Git वर्कफ़्लो की सिफारिश की गई है?

मैंने पहले ही इस लेख को देखा है , लेकिन यहां दृष्टिकोण "हम संभव के रूप में शायद ही कभी अतिरिक्त शाखाएं बनाते हैं", और मैं "प्रत्येक उपयोगकर्ता कहानी के लिए शाखा" दृष्टिकोण में अधिक विश्वास करता हूं।

साथ ही, यह लेख एक अच्छा दृष्टिकोण प्रस्तुत करता है।

मेरे पास एक मास्टर शाखा, प्रत्येक टीम की एक स्थायी शाखा, जो समय-समय पर मास्टर में विलय हो रही है, और एक प्रति उपयोगकर्ता-स्टोरी शाखाएं हैं जो टीमों की शाखाओं में विलय कर रही हैं। क्या यह समझ में आता है, या यह काम नहीं करेगा?


2
हम इस शाखा मॉडल का उपयोग करते हैं , लेकिन मुझे लगता है कि यदि आप "फीचर शाखा" को "कहानी शाखा" के रूप में पढ़ते हैं, तो यह वास्तव में आपके दूसरे लेख के साथ अच्छा लगता है।

2
मुझे यकीन है कि 10 लोग 10 अलग-अलग प्रतिक्रियाओं के साथ इस पर वापस प्रतिक्रिया दे सकते हैं। यहाँ मेरे लिए क्या काम करता है: हमारे पास एक मास्टर रेपो है जो गीथूब पर होस्ट किया गया है जो 'वर्तमान' रिलीज को दर्शाता है। पुराने रिलीज शाखायुक्त हैं (हालांकि टैगिंग कार्य भी)। टीम के सदस्यों को उन कार्यों के लिए शाखा बनाने के लिए प्रोत्साहित किया जाता है जिन पर वे काम कर रहे हैं। जब पूरा हो जाता है, तो वे मास्टर (या जहां कभी इसे विलय करने की आवश्यकता होती है) के लिए एक पुल अनुरोध करते हैं और फिर कोई और व्यक्ति पुल अनुरोध की समीक्षा करता है और इसे मास्टर में विलय करने के लिए पुन: प्रयोज्य होता है। एक बार विलय होने के बाद वे शाखा को साफ करने के लिए भी जिम्मेदार हैं।

2
अलग-अलग टीमों के कोडबेस को अलग रखने के लिए आपको सबमॉड्यूल में दिलचस्पी हो सकती है । वे तब एक-दूसरे के कोडबेस को कांटा कर सकते हैं और कोड के प्रत्येक हिस्से को संपादित करते समय पैच भेज सकते हैं।
फ्रेड फू

@larsmans & carbonbasednerd - आपकी टिप्पणियों के उत्तर होने चाहिए थे, उन्हें मुझसे वोट मिले होंगे। * 8 ')
मार्क बूथ

जवाबों:


8

सफल जीट ब्रांचिंग मॉडल पर एक नज़र डालें , जिसमें रिलीज के दौरान फीचर विकास के लिए एक अच्छी ब्रांचिंग रणनीति है।

एक सफल गिट ब्रांचिंग मॉडल

आप 'विकसित' शाखा और 'सुविधा शाखाओं' के बीच टीम की शाखाओं के लिए एक अतिरिक्त स्तर के साथ कुछ समान लागू कर सकते हैं। टीम की शाखाएं होने से दो टीमों को अपनी टीम की शाखाओं के बीच विलय करके अधिक प्रभावी ढंग से सहयोग करने की अनुमति मिलेगी।


0

मैं कहूंगा कि प्रत्येक टीम के पास रिपॉजिटरी का अपना संस्करण है, जिसमें एक वैश्विक रिपॉजिटरी है जहां हर कोई (जैसे लिनक्स कर्नेल, जहां लिनुस रिपॉजिटरी है, कर्नेल और सेंट्रल रिपॉजिटरी है)।

फिर उत्पाद कोड को बनाए रखने के लिए, आप submodules का उपयोग कर सकते हैं जैसे @larsmans ने कहा, तो प्रत्येक टीम केवल मुख्य रूप से उस हिस्से पर काम कर सकती है जो उनके लिए सबसे महत्वपूर्ण है और अगर उन्हें दूसरे भाग के साथ काम करने की आवश्यकता है, तो वे इसे कर सकते हैं, लेकिन वे सबमॉड्यूल को अपडेट करने के लिए याद रखना होगा, और यह वह जगह है जहाँ समस्या निहित है (चूंकि यह बहुत आसान है कि चीजों को गलत तरीके से इस्तेमाल करते समय, आसानी से उन्हें हटा दें)।

लेकिन जब से आपकी टीमों को इसके लिए उपयोग किया जाता है, और जानते हैं कि वे अन्य टीम कोड बदल रहे हैं, उनके लिए विदेशी मॉड्यूल बदलने से पहले, सबमॉड्यूल अपडेट को याद रखना आसान है।

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