के लिए 'गिट पुल' बनाम 'गिट चेकआउट-एफ' का उपयोग करके मुझे एक नंगे रिमोट रेपो का उपयोग करके स्वचालित रूप से वेबसाइट अपडेटों को तैनात करने के लिए दो आम दृष्टिकोण मिल गए हैं।वेबसाइट परिनियोजन
सबसे पहले यह आवश्यक है कि रेपो को वेबसर्वर के दस्तावेज़ रूट में क्लोन किया गया हो और पोस्ट-अपडेट हुक में गिट पुल का उपयोग किया जाता है।
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 का उपयोग करके हल किया जाता है।
क्या एक विधि सर्वोत्तम अभ्यास के मामले में दूसरे की तुलना में निष्पक्ष रूप से बेहतर है? मुझे क्या फायदे और नुकसान याद आ रहे हैं?
यह मुझे स्पष्ट नहीं है कि 'रिलीज तंत्र से स्वतंत्र' लक्ष्य वातावरण नहीं होने के जोखिम/डाउनसाइड्स क्या हैं। मैं जो कुछ भी सोचता हूं उसके बारे में सोच सकता हूं - .git फ़ोल्डर जिसे आवश्यक .htaccess नियमों का उपयोग करके आसानी से कम किया जा सकता है। मैं क्या खो रहा हूँ? किसी भी सलाह की सराहना की। – Michelle
@ मिशेल बस, रिलीज प्रबंधन की अवधि में, आप उत्पादन प्लेटफॉर्म पर रखे/तैनात/प्रबंधित किए गए सख्त नियंत्रण को लागू करने का प्रयास करते हैं: यह केवल * रन * ऐप के लिए आवश्यक है, कुछ भी नहीं, एक अतिरिक्त उपकरण नहीं (गिट)। उस ने कहा, यह एक "सामान्य रूप से सर्वोत्तम अभ्यास" है, पूर्ण नियम नहीं है, और आपके संदर्भ में, आप पूरी तरह से अपने प्रोड प्लेटफ़ॉर्म पर गिट रेपो को रख सकते हैं। – VonC