github टीम वर्कफ़्लो - कांटा या नहीं?


21

हम वर्तमान में तोड़फोड़ का उपयोग कर रहे वेब डेवलपर्स की एक छोटी टीम हैं, लेकिन जल्द ही हम जीथब पर स्विच कर रहे हैं।

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

यदि हम कांटे का उपयोग करते हैं, तो मैं समझता हूं कि प्रत्येक डेवलपर के पास अपने निजी रिमोट और स्थानीय रिपॉजिटरी होंगे। मुझे चिंता है कि यह बदलावों को कठिन और बहुत जटिल बना देगा। इसके अलावा, मेरी सबसे बड़ी चिंता यह है कि यह प्रत्येक डेवलपर को 2 रीमोट: मूल (जो रिमोट कांटा है) और एक अपस्ट्रीम (जो मुख्य रिपॉजिटरी से "सिंक" परिवर्तन के लिए उपयोग किया जाता है) के लिए मजबूर करेगा। यकीन नहीं होता कि यह चीजों को करने का इतना आसान तरीका है।

यह यहाँ बताए गए वर्कफ़्लो के समान है: https://github.com/usm-data-analysis/usm-data-analysis.github.com/wiki/Git-workflow

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

दोनों वर्कफ़्लो की कोशिश करने वाली टीमों का कोई सुझाव?


3
कांटा या कांटा नहीं
लुकाज़ मैडॉन

जवाबों:


9

मुझे लगता है कि आपके डरने की आशंका एसवीएन के स्टेलर मर्जिंग से कम है - क्योंकि यह वह फोर्किंग नहीं है जो परेशानी का कारण बनती है - यह मर्जिंग है।

में गोता - आप पाएंगे यह वास्तव में बहुत अच्छा है! आपको ओवर-फोर्क (प्रत्येक फ़ाइल में प्रत्येक परिवर्तन के लिए कांटा नहीं) की आवश्यकता नहीं है, लेकिन आप सुविधाओं के लिए कांटा कर सकते हैं, और वापस मर्ज कर सकते हैं।

स्रोत नियंत्रण में कई मूल अवधारणाओं में सुधार के कई संस्करणों के रूप में GitHub के बारे में सोचें।

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


19
यदि आप "कांटा" के सभी उदाहरणों को "शाखा" से बदलते हैं, तो मैं सहमत हूं। हालांकि, सवाल दो या दो से अधिक (या अधिक) दूरस्थ रिपॉजिटरी से निपटने और निपटने के बारे में था।
डेविड हार्कस

8

हम दोनों की कोशिश की है, डेवलपर्स के साथ जो svn में घर पर हैं। और अगर आप पहले से ही एक साथ काम कर रहे डेवलपर्स का एक समूह हैं और प्रतिबद्ध अधिकारों के साथ एक-दूसरे पर भरोसा कर रहे हैं, तो आपको शायद यह आसान होगा कि आप एक सिंगल, सेंट्रल रेपो को जिप में रखें और आप सभी को सहयोगी के रूप में जोड़ें जो कि रेपो हो।

हम अभी भी कभी-कभार निजी कांटे लगाते हैं, लेकिन यह आम तौर पर विदेशी परिवर्तन या 1-व्यक्ति परीक्षणों के लिए होता है जो बाकी आमतौर पर रुचि नहीं रखते हैं, लेकिन हम किसी भी तरह दूर से स्टोर करना चाहते हैं।

मैं एक सिंगल, सेंट्रल रेपो के साथ शुरुआत करूंगा और कुछ समय के लिए काम करूंगा। शायद निजी कांटा आप पर बढ़ेगा, शायद नहीं। कुछ भी चलेगा।


6

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


3

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

जब ऐसा होता है, तो गितुब में आपकी मुख्य रेपो में सैकड़ों शाखाएँ होंगी; कुछ पुराने और भुला दिए गए और असम्बद्ध होंगे।

आपके पास सहयोग के साथ समस्याएँ भी होंगी, जहाँ कोई व्यक्ति रेपो पर साझा की गई शाखा पर जोर दे रहा है। इसका मतलब है कि कोई भी उस शाखा पर ठीक से सहयोग नहीं कर सकता है क्योंकि बल-धक्का इतिहास का पुनर्लेखन है।

रेपो को फोर्क करने से यह ट्रैक करना आसान हो जाता है कि कौन सी शाखाएँ काम कर रही हैं और किन लोगों को जाना अच्छा है। यह मुख्य रेपो क्लीनर रखता है।

हालाँकि, आपका परीक्षण बुनियादी ढाँचा मुख्य रेपो का उपयोग करने पर निर्भर हो सकता है, इसलिए जब तक आपने शाखा को ऊपर की ओर धकेल नहीं दिया है, तब तक अपने फ़ॉरेस्ट रेपो में परिवर्तनों का परीक्षण करना कठिन हो सकता है। यह पता लगाने के लिए मुश्किल हो सकता है कि ब्रांचिंग और फोर्किंग सबसे अच्छा है, लेकिन सामान्य तौर पर, जब टीम में 4 से अधिक लोग होते हैं और बहुत सारे सुधार और विशेषताएं होती हैं, तो फोर्किंग सबसे अच्छा विकल्प है।

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