हालांकि यह एक स्वीकृत उत्तर वाला एक पुराना प्रश्न है, मेरा मानना है कि अभी भी एक और के लिए जगह है।
सबसे पहले, मुझे यह कहना चाहिए कि मुझे नहीं लगता कि इस कार्य के लिए सुविधाएँ सही उपकरण हैं, और वे उपकरण के वैकल्पिक सेट का प्रस्ताव रखेंगे।
टीम के सहयोग के लिए एक शर्त यह है कि परियोजना के विकास संस्करणों का परीक्षण करने के लिए एक मंचन सर्वर होना चाहिए जो आपके उत्पादन सर्वर से अलग हो। सभी डेवेलोपमेंट कोड का मंचन सर्वर पर परीक्षण किया जाता है, और केवल उत्पादन सर्वर पर धकेल दिया जाता है जब यह स्थिर होता है और तैनाती के लिए तैयार होता है। हालाँकि, डेवलपर्स सीधे स्टेजिंग सर्वर पर काम नहीं करते हैं। प्रत्येक डेवलपर अपने या अपने स्वयं के वर्कस्टेशन पर काम करता है, बाकी टीम के साथ अपने काम को समन्वय करने के लिए एक संशोधन नियंत्रण और स्रोत कोड प्रबंधन (एससीएम) का उपयोग करता है।
SCM प्रणाली टीम के सदस्यों को एक दूसरे के साथ हस्तक्षेप किए बिना कोड की विभिन्न शाखाओं पर समानांतर में काम करने की अनुमति देती है । परीक्षण उद्देश्यों के लिए केवल मास्टर शाखा को मचान सर्वर पर तैनात किया गया है।
डेटाबेस को प्रोडक्शन, स्टेजिंग और वर्कस्टेशन के बीच मिरर करने के लिए, बैकअप और माइग्रेट नाम का एक मॉड्यूल होता है, जिसका इस्तेमाल अगर आप साझा होस्टिंग पर कर रहे हैं और अपने खुद के डेटाबेस को मैनेज नहीं कर सकते हैं। यदि आप अपने स्वयं के डेटाबेस सर्वर का प्रबंधन कर रहे हैं, तो यह उस सर्वर पर एकमात्र परियोजना है, और आप mysql का उपयोग करते हैं , कमांड की निम्नलिखित जोड़ी पसंद की जा सकती है:
डंप करने के लिए:
mysqldump --all-databases --opt -u root -p > DUMP.sql
पुन: स्थापित करने हेतु:
mysql -u root -p < DUMP.sql
यदि आपका उस सर्वर पर एकमात्र डेटाबेस नहीं है, तो केवल अपने डेटाबेस को डंप mysqldump
करने वाले mysql का कुछ संस्करण (या समकक्ष यदि आप उपयोग नहीं कर रहे हैं ) स्क्रिप्ट ।
एक नीति बनाएं कि यह मास्टर के उत्पादन सर्वर पर डेटाबेस है। स्टेजिंग सर्वर और वर्कस्टेशन प्रोडक्शन डेटाबेस की एक प्रति होनी चाहिए, न कि इसके विपरीत।
ध्यान दें कि Drupal 7 डेटाबेस में अपनी सभी व्यवस्थापक सेटिंग रखता है। इसका मतलब यह है कि उत्पादन साइट, स्टेजिंग साइट और वर्कस्टेशन के बीच डेटाबेस को मिरर करना, फीचर्स के बिना एडमिशन सेटिंग्स को माइग्रेट करेगा ।
अब, कोड साझा करने के लिए:
एक विकास दल के सदस्यों के बीच कोड साझा करने का मानक तरीका SCM प्रणाली का उपयोग करना है। ड्रुपल होता है डिफ़ॉल्ट रूप से इस तरह के सिस्टम को git नाम से प्रबंधित किया जाना चाहिए ।
Git स्थानीय या दूरस्थ रिपॉजिटरी के उपयोग की अनुमति देता है। यदि टीम के सदस्य एक ही भौतिक स्थान पर स्थित हैं, तो आप अपने मंचन सर्वर पर एक स्थानीय भंडार स्थापित कर सकते हैं। यदि वे भौगोलिक रूप से फैले हुए हैं, तो आप एक दूरस्थ भंडार स्थापित कर सकते हैं। यदि आपको विकास के तहत अपने कोड पर पढ़ने की अनुमति नहीं है, तो आप Drupal.org पर एक रिमोट रिपॉजिटरी के रूप में सैंडबॉक्स का उपयोग कर सकते हैं । आप GitHub पर प्रोजेक्ट क्षेत्र का उपयोग कर सकते हैं । GitHub न केवल एक रिपॉजिटरी है, बल्कि सहयोग के लिए कुछ टूल के साथ आता है, और दोनों सार्वजनिक और निजी रिपॉजिटरी की अनुमति देता है।
मूल रूप से, एक SCM प्रणाली टीम के सदस्यों को टीम के सदस्यों द्वारा साझा किए गए रिस्पॉन्सरी से स्रोत कोड और प्रलेखन खींचने के लिए अनुमति देती है, और इस पर काम करने के बाद इसे फिर से वापस धकेल देती है। SCM परिवर्तनों का ट्रैक रखता है और यदि कोई संघर्ष होता है (अर्थात कोई व्यक्ति कोड को पुश करने की कोशिश करता है जिसमें अन्य टीम सदस्य द्वारा किए गए परिवर्तन शामिल नहीं हैं), तो यह आपको बताएगा और इस संघर्ष को हल करने का एक तरीका भी सुझाएगा।
आमतौर पर, टीम के सदस्यों के बीच कार्यों को कैसे विभाजित किया जाता है, इसके बारे में कुछ सौहार्दपूर्ण संचार के साथ, कोई संघर्ष नहीं होगा। लेकिन एससीएम प्रणाली चीजों पर नजर रखने के साथ, गलतियों या संचार विफल होने पर भी संघर्ष प्रबंधन हो जाता है।
Git (GIYF) के साथ आरंभ करने और उपयोग करने पर बहुत सारे ट्यूटोरियल मौजूद हैं । दो मैं सुझाऊंगा : स्कॉट स्कॉन द्वारा git-scm वेबसाइट और प्रो Git ।