2013-02-25 11 views
43

यह आलेख दिलचस्प लगता है, लेकिन मुझे पूरा यकीन है कि आरेख गलत हैं। http://guides.beanstalkapp.com/version-control/branching-best-practices.htmlगिट

नहीं यह DEVELOPMENT>STAGING>PRODUCTION होना चाहिए?

-बनाए गए एक ही दिशा में प्रवाह चाहिए: सुविधा और बग फिक्स परीक्षण के लिए मचान में अपने स्वयं के शाखा में या विकास में किया है। एक बार परीक्षण किया गया है, तो आप विकास से उन परिवर्तनों को उत्पादन में विलय कर सकते हैं।

यहां मुझे थोड़ा उलझन मिलता है। तो मैं स्टेजिंग मास्टर या मास्टर को स्टेजिंग में मिलाता हूं?

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


वास्तव में क्या यह इतना भ्रमित कर दिया है कि बीनस्टॉक लोग अपने मंचन के बहुत अमानक उपयोग के पीछे खड़े है (यह उनके चित्र में विकास से पहले आता है, और यह एक गलती नहीं है! https://twitter.com/Beanstalkapp/status/306129447885631488

है बीनस्टॉक के बारे में और सिर्फ Github साथ भूल का फैसला किया।


जब से मैं इस पोस्ट, बीनस्टॉक लोगों को अपने चरणों मेरी संकेत लिया और नाम बदला, अब विकास बुला "स्थिर"।

+1

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

+0

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

+0

हाँ यह बिल्कुल तैराकी लेन नहीं है। लेकिन मेरा सवाल अधिक विशेष रूप से है: क्या मैं स्टेजिंग पर स्विच करता हूं और देव में विलय करता हूं, या इसके विपरीत? मैं गिट करने के लिए नया हूं और इसके बारे में उलझन में हूं। हो सकता है कि मुझे अपने विंडोज़ गिट क्लाइंट स्मार्टगिट के निर्माताओं को सीधे प्रश्न का समाधान करना चाहिए। –

उत्तर

47

यहां विचार प्रक्रिया यह है कि आप अपना अधिकांश समय development में बिताते हैं। विकास में, आप feature शाखा (development से बाहर) बनाते हैं, सुविधा को पूरा करें, और फिर development में वापस विलय करें। इसे production में विलय करके अंतिम उत्पादन संस्करण में जोड़ा जा सकता है।

इस दृष्टिकोण पर अधिक जानकारी के लिए A Successful Git Branching Model देखें।

+14

"एक सफल गिट ब्रांचिंग मॉडल" के लिए +1। यह मूल रूप से मानक बन गया है जहां तक ​​गिट वर्कफ़्लो जाते हैं। –

+6

"एक सफल गिट ब्रांचिंग मॉडल" छोटी परियोजनाओं के लिए थोड़ा जटिल है जिसमें केवल कुछ लोग शामिल हैं। मैं सरल विधि पसंद करता हूं, जहां मास्टर शाखा में विकास किया जाता है और स्थिर संस्करण मास्टर शाखा में टैग किए जाते हैं और यदि आवश्यक हो तो उनके पास पैच के लिए उनकी स्थिर शाखा होती है। Http://stackoverflow.com/questions/14858075/set-the-develop-branch-as-the-default-for-a-pull-request/14858295#14858295 और http://scottchacon.com/2011/08 देखें /31/github-flow.html –

+1

धन्यवाद @ जोसेफकुफनर जीथब फ्लो आलेख बहुत उपयोगी था –

5

हम इसे अलग करते हैं, IMHO आसान: master में हम अगले प्रमुख संस्करण पर काम कर रहे हैं।

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

यदि कोई नई रिलीज आ रही है, तो हम मास्टर से बाहर एक साइड-शाखा बनाते हैं, उदा। release-5 जहां केवल बग ठीक हो जाते हैं।

+0

मुझे नहीं पता कि इसका क्या अर्थ है। –

+2

आप किस विशेष रूप से समझ में नहीं आता? – Mot

1

गिट के बारे में सबसे अच्छी चीजों में से एक यह है कि आप उस काम प्रवाह को बदल सकते हैं जो आपके लिए सबसे अच्छा काम करता है ..मैं अधिकांश समय http://nvie.com/posts/a-successful-git-branching-model/ का उपयोग करता हूं लेकिन आप अपनी जरूरतों को पूरा करने वाले किसी भी वर्कफ़्लो का उपयोग कर सकते हैं

3

असल में यह इतना भ्रमित करने वाला क्या है कि बीनस्टॉक लोग स्टेजिंग के अपने गैर-मानक उपयोग के पीछे खड़े हैं (यह उनके विकास से पहले आता है आरेख, और यह एक गलती नहीं है

https://twitter.com/Beanstalkapp/status/306129447885631488

0

a post on my blog से: यह भी संदेहास्पद चा:

"gitflow" nvie से कार्यप्रवाह दो समस्याएं हैं "मास्टर" शाखा का अर्थ nges, और यह स्पष्ट रूप से एक अतिरिक्त लंबी जीवित शाखा की लागत को औचित्य साबित नहीं करता है। दोनों समस्याएं द्वारा हल किया जा सकता है [...]