2012-10-07 19 views
8

के लिए 'गिट पुल' बनाम 'गिट चेकआउट-एफ' का उपयोग करके मुझे एक नंगे रिमोट रेपो का उपयोग करके स्वचालित रूप से वेबसाइट अपडेटों को तैनात करने के लिए दो आम दृष्टिकोण मिल गए हैं।वेबसाइट परिनियोजन

सबसे पहले यह आवश्यक है कि रेपो को वेबसर्वर के दस्तावेज़ रूट में क्लोन किया गया हो और पोस्ट-अपडेट हुक में गिट पुल का उपयोग किया जाता है।

cd /srv/www/siteA/ || exit 
unset GIT_DIR 
git pull hub master 

दूसरा दृष्टिकोण नंगे भंडार में 'अलग कार्य पेड़' जोड़ता है। बाद प्राप्त हुक -f Git चेकआउट का उपयोग करता है काम निर्देशिका जो वेबसर्वर दस्तावेज़ जड़ यानी

GIT_WORK_TREE=/srv/www/siteA/ git checkout -f 

पहले दृष्टिकोण लाभ यह है कि कार्यशील निर्देशिका वेबसाइटों में किए गए परिवर्तनों सकता है में भंडार के HEAD को दोहराने के लिए प्रतिबद्ध रहें और नंगे रेपो पर वापस धक्का दें (हालांकि फ़ाइलों को लाइव सर्वर पर अपडेट नहीं किया जाना चाहिए)। दूसरे दृष्टिकोण का लाभ यह है कि गिट निर्देशिका दस्तावेज़ रूट के भीतर नहीं है लेकिन इसे आसानी से htaccess का उपयोग करके हल किया जाता है।

क्या एक विधि सर्वोत्तम अभ्यास के मामले में दूसरे की तुलना में निष्पक्ष रूप से बेहतर है? मुझे क्या फायदे और नुकसान याद आ रहे हैं?

उत्तर

4

रिलीज प्रबंधन (यहां तैनाती) की अवधि में, एक लक्ष्य वातावरण होना सर्वोत्तम है जो रिलीज तंत्र से स्वतंत्र है।
दूसरे शब्दों में, दूसरा समाधान (checkout -f) एक सादे वेब निर्देशिका संरचना को संशोधित करेगा, बिना किसी अन्य उपनिर्देशिका के जो इसे का हिस्सा नहीं बनना चाहिए (जैसे .git फ़ोल्डर)।
उदाहरण के लिए, उदाहरण के लिए, "using git to deploy my node.js app to my production server" में इसका उपयोग करें।

जो किसी भी दुष्प्रभाव को कम करता है और उत्पादन वातावरण को हस्तक्षेप के बिना चलाने की आवश्यकता के साथ काम करने की अनुमति देता है।

+0

यह मुझे स्पष्ट नहीं है कि 'रिलीज तंत्र से स्वतंत्र' लक्ष्य वातावरण नहीं होने के जोखिम/डाउनसाइड्स क्या हैं। मैं जो कुछ भी सोचता हूं उसके बारे में सोच सकता हूं - .git फ़ोल्डर जिसे आवश्यक .htaccess नियमों का उपयोग करके आसानी से कम किया जा सकता है। मैं क्या खो रहा हूँ? किसी भी सलाह की सराहना की। – Michelle

+2

@ मिशेल बस, रिलीज प्रबंधन की अवधि में, आप उत्पादन प्लेटफॉर्म पर रखे/तैनात/प्रबंधित किए गए सख्त नियंत्रण को लागू करने का प्रयास करते हैं: यह केवल * रन * ऐप के लिए आवश्यक है, कुछ भी नहीं, एक अतिरिक्त उपकरण नहीं (गिट)। उस ने कहा, यह एक "सामान्य रूप से सर्वोत्तम अभ्यास" है, पूर्ण नियम नहीं है, और आपके संदर्भ में, आप पूरी तरह से अपने प्रोड प्लेटफ़ॉर्म पर गिट रेपो को रख सकते हैं। – VonC

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