Esko ओपन-सोर्स प्रोजेक्ट्स के लिए उपयुक्त उत्कृष्ट समाधान सुझाया गया। हालांकि यह आवश्यक है कि एक सहयोगी टीम के प्रत्येक सदस्य के पास गिटहब पर एक भुगतान खाता है, जो हमेशा सत्य नहीं होता है।
VonC ने बताया कि एक और समाधान है जिसमें केवल एक भुगतान गिटहब खाता शामिल है। और मैं कुछ ट्यूटोरियल प्रदान करने जा रहा हूं कि वोनसी के समाधान को कैसे कार्यान्वित किया जाए।
मान लीजिए कि हमारे पास दो निजी भंडार हैं: test-test
और test-production
। पहला रेपो विकास के लिए है और एक टीम के हर सदस्य के पास इसका उपयोग है। दूसरा रेपो कोड की स्वचालित तैनाती के लिए है और इसलिए इसे मजबूत पहुंच प्रतिबंध लागू होते हैं।
डेवलपर्स के लिए सेटअप बहुत सरल और staightforward है: git clone https://github.com/<username>/test-test
, अपना काम करें और इसे वापस धक्का दें।
सहयोगियों के लिए सेटअप में थोड़ा और अधिक जटिल है: विकास रेपो से
पुल शाखाओं git clone https://github.com/<username>/test-test
दूरस्थ भंडार git remote add production-repo https://github.com/<username>/test-production.git
नई रेपो से डेटा लाने जोड़े git fetch production-repo
नया स्थानीय बनाएं उत्पादन कोड और इसे करने के लिए git checkout -b local-production
टेल Git स्विच के लिए शाखा स्थानीय एक git pull
क्रमबद्ध बाहर संभव संघर्ष करने के लिए स्थानीय और दूरस्थ शाखाओं दूरदराज के उत्पादन शाखा के git branch -u production-repo/production
डाउनलोड सामग्री से जोड़ने के लिए और बस!
अब सब कुछ है कि local-production
शाखा से धकेल दिया जाता है test-production
रेपो में मिल जाएगा और अन्य शाखाओं test-test
रेपो पर पुश किया जाएगा।
ठीक है, यह अच्छा है, लेकिन अधिक बारीक ([व्यक्ति का नाम]-विकास) पहुंच के बारे में क्या है? - आप पूछ सकते हैं। जवाब यह है: आप प्रत्येक डेवलपर के लिए test-test
के समान रेपो बना सकते हैं और उन्हें सेट अप करने के लिए समान पैटर्न का उपयोग कर सकते हैं। इस दृष्टिकोण का नकारात्मक पक्ष यह है कि सहयोगियों को test-test-[person's name]-development
रिपोज़ में से प्रत्येक को क्लोन करना होगा।
वॉनसी ने production
रेपो को फोर्क करने और इसे पुल अनुरोध करने के लिए भी सुझाव दिया - ऐसा क्यों न करें? सबसे पहले, क्योंकि आप GitHub खाते का भुगतान किए बिना एक निजी रेपो नहीं जा सकते हैं। दूसरा, किसी को निजी रेपो को फोर्क करने की अनुमति देने के लिए, आप उसे पूर्ण पहुंच देते हैं, इसलिए वह सीधे इसे दबा सकता है। और एक डेवलपर गलती कर सकता है, production
रेपो लॉन्च करने के लिए गिटहब सेवा हुक लॉन्च कर रहा है और चीजों को खराब कर सकता है। और यदि आप कई आउटसोर्स डेवलपर्स का उपयोग करते हैं, तो ऐसा होने की संभावना है।
इसके अलावा मैं आपको विंडोज़ के लिए आधिकारिक गिटहब ऐप में
बग
सुविधा के बारे में चेतावनी देना चाहता हूं। मूल से अलग अपस्ट्रीम वाली शाखाएं मूल हो जाएंगी। तो धक्का देने के लिए कमांड लाइन का उपयोग करें।
इन सभी चीजों को थोड़ा सा जटिल लगता है। लेकिन यह हमेशा ऐसा ही होता है यदि आप सादगी के लिए भुगतान नहीं करना चाहते हैं।
स्रोत
2013-12-12 16:56:17
मैं जानता हूँ कि इस सवाल पुराना है। लेकिन https://help.github.com/articles/about-branch-restrictions/ –