2011-07-06 11 views
5

हम डेवलपर्स की एक छोटी टीम हैं और एक वेब अनुप्रयोग का निर्माण कर रहे हैं। वर्तमान में हम एक लाइव, परीक्षण और कई विकास वातावरण हैं।वेब अनुप्रयोगों के लिए गिट के भीतर आपकी आदर्श शाखा वास्तुकला क्या है?

क्या शाखा वास्तुकला आप सुझाव है, इसलिए आदर्श हर डेवलपर उनकी फीचर (ओं) पर काम कर सकते हैं, इन परीक्षण किया है और अन्य डेवलपर्स/सुविधाओं tangenting बिना तैनात किया जा सकता?

वर्तमान में, प्रत्येक डेवलपर की अपनी विकास शाखा है और परीक्षण शाखा में छूट जाती है। जैसे ही एक सुविधा को मंजूरी मिलती है, डेवलपर मास्टर में अपने परिवर्तनों को वापस कर देता है।

यह तब तक काम करता है जब तक सुविधाओं का तुरंत परीक्षण किया जाता है। हालांकि, अगर कोई डेवलपर अगली फीचर पर काम कर रहा है, जबकि फीचर पहले से परीक्षण किया गया है, तो हमें चीजों को मैन्युअल रूप से संभालना होगा।

राय के लिए धन्यवाद।

उत्तर

3

थोड़ा समय हो गया है कि मैं अपने लेख A successful Git branching model में विन्सेन्ट Driessen द्वारा वर्णित इस उपयोगी दिशा निर्देशों का पालन।

आप एक बार देख ले सकते हैं और आप कैसे वह शाखाओं प्रबंधन का वर्णन करता है देख सकते हैं और से बचने के rebases

+0

धन्यवाद, यह मॉडल अच्छा दिखता है! –

+1

विन्सेंट का मॉडल लगातार डेस्कटॉप रिलीज के साथ एक वेब एप्लिकेशन के मुकाबले कम रिलीज के साथ एक डेस्कटॉप एप्लिकेशन के लिए उपयुक्त लगता है। – claymation

+0

मुझे असहमत होना है क्योंकि मैं मोबाइल और वेब ऐप के लिए इस दृष्टिकोण का उपयोग करता हूं और मुझे आपके दृष्टिकोण और रिलीज आवृत्ति के बीच एक लिंक नहीं दिखाई दे रहा है। आवृत्ति कहाँ एक मुद्दा होगा? –

0

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

क्यों एक वास्तविक DVCS के रूप में Git का उपयोग करें और बस के रूप में पिछले सुविधा के परीक्षण समाप्त हो गया है परीक्षण वातावरण में प्रत्येक उपयोगकर्ता से सुविधाओं खींच नहीं?

विधेयक FeatureX विकासशील तो है, और टेड FeatureY, वे अपने सुविधाओं शाखाओं पर उपलब्ध क्रमशः testing/feature-x और testing/feature-y कहा जाता है कर सकता है विकसित कर रहा है, और आप बस परीक्षण वातावरण में bill:testing/feature-x चेकआउट सकता है।

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

सुविधा केवल एक परीक्षण तालिका में सुविधा को पुन: प्राप्त करने के बाद, यदि कोई सुविधा विफल हो जाती है तो आप क्या कर रहे हैं? क्या होगा अगर किसी और ने को सुविधा पर शाखा के परीक्षण के लिए सुविधा दी है जिसमें अब टूटी हुई सुविधा है?

0

एक वेब अनुप्रयोग के लिए, आप कर रहे हैं (उम्मीद) कोड दैनिक काम कर की तैनाती करेगा, जिससे आप शायद एक मिल जाएगा एक शाखा (मास्टर) पर्याप्त होने के लिए। निरंतर एकीकरण/तैनाती का उपयोग करें, अच्छे परीक्षण लिखें, और अपनी सुविधाओं को एक ही समय में छोटी खुराक में रिलीज़ करने के लिए डिज़ाइन करें। जब मैं विकल्प तलाश रहा है

0

This slidedeck (ओ पी और जवाब के बाद बनाए गए) काफी मददगार था, अनिवार्य रूप से एक भी develop शाखा से प्रत्येक डेवलपर शाखाओं की सिफारिश की गई है, और फिर वहाँ वापस धक्का और नियमित रूप से rebases नवीनतम परिवर्तनों के लिए (चेतावनियां शामिल)।

संबंधित मुद्दे