एक निजी Github भंडार पर सहयोगियों को प्रत्येक कांटा रेपो चाहिए?


15

मैं इस समय एक परियोजना पर काम कर रहा हूं, और हमारे पास सहयोगी के रूप में जीथब पर एक निजी भंडार में स्रोत कोड है।

हम इस बात पर स्पष्ट नहीं हैं कि हमारे प्रत्येक कार्य को कैसे अलग किया जाए।

मुझे लगता है कि हमें करने की आवश्यकता है:

  1. हम में से प्रत्येक को रिपॉजिटरी को कांटा बनाने की जरूरत है
  2. जब हम अपना कोड पुश करने के लिए तैयार होते हैं, तब हम प्रोजेक्ट लीडर के रेपो के लिए एक पुल अनुरोध प्रस्तुत करते हैं, जो एक ही समय में कोड समीक्षा करने के अवसर के रूप में इसका उपयोग कर सकते हैं।

जब यह निजी रिपॉजिटरी की बात आती है, तो क्या यह फोर्किंग के लिए इस्तेमाल किया जाना चाहिए, या क्या मैं स्थिति को ओवरकंप्लीकेट कर रहा हूं?


1
हाँ। इसे वैसे ही करें जैसे आपने यहां सुझाया है, केवल एक टीम बनाएं और टीम के रेपो को "मास्टर" रेपो बनाएं। प्रोजेक्ट लीडर सहित हर कोई पीआरएस बनाता है।
रबरडुक

जवाबों:


7

रेपो को डेवलपर की स्थानीय मशीन पर क्लोन करना पहले से ही एक प्रकार का फोर्किंग है। यदि प्रत्येक डेवलपर GitHub पर रेपो की मांग करता है, तो यह केवल उनकी वर्तमान स्थिति को प्रकाशित करने का कार्य करता है।

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

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

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


1
बस जल्दी से यह कहने के लिए कि @amon क्या कहता है, मैंने एक ऐसे संगठन में काम किया है जहाँ हर डेवलपर को एक मुख्य रेपो से कांटा लगाना आवश्यक था, जिसे हम सभी महसूस करते थे कि यह एक अनावश्यक और अनाड़ी अतिरिक्त कदम था। मुझे कभी समझ नहीं आया कि इसकी आवश्यकता क्यों थी, लेकिन हमारी ऑप्स टीम इस पर चर्चा नहीं करेगी। यह प्रक्रिया थी: प्रतिबद्ध -> धक्का -> पुल अनुरोध -> प्रतीक्षा -> कुछ और प्रतीक्षा करें -> आईआरसी पर ऑप्स टीम का ध्यान आकर्षित करने का प्रयास -> ऑप्स लोगों पर जाएं और उन्हें पुल अनुरोध को देखने के लिए कहें -> प्रतीक्षा करें -> कोड एकीकृत -> दोहराएं।
डेविडेवडेव

1
मैं वास्तव में इस वर्कफ़्लो को हतोत्साहित करता हूं। मैं दो डेवलपर्स के साथ वास्तव में बुरा मर्ज संघर्ष का अनुभव किया है दोनों सीधे कैनोनिकल रेपो के लिए धक्का। उल्लेख नहीं करने के लिए, किसी और को अपने कोड की समीक्षा करना अभी भी सबसे अच्छा है। यदि आप प्रत्येक के पास एक कांटा है, तो पुल अनुरोध सबमिट करना बहुत आसान है, और एक कैनोनिकल प्रोजेक्ट रेपो है। हाँ हाँ। मुझे पता है, यह "वितरित" नहीं है। जो कुछ। मेरे अनुभव में कांटा और पीआर मॉडल बेहतर काम करता है।
रबड़डुक

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

समस्या यह है कि कौन निर्धारित करता है कि सुविधा मास्टर में जाने के लिए तैयार है? मुझे शाखाओं के साथ काम करने में भी गड़बड़ लगती है; एक रेपो पर 100 शाखाएं और उनमें से अधिकांश अनमैरिड या आधी-अधूरी हैं, अगर वे मर्ज होने के लिए तैयार नहीं हैं तो भी उनका अस्तित्व क्यों होना चाहिए? एक्सेस मैनेजमेंट वर्कफ़्लो के बारे में 100% है, यह उत्तर केवल आधा अच्छा है।
रुडोल्फ ओलह

5

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


धन्यवाद, अन्य उत्तर के साथ जाने के लिए और अधिक विवरण है, लेकिन हाँ मैं सहमत हूँ :)
JMK
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.