मैं एक परियोजना पर नज़र रखने के Git का उपयोग कर रहा है, और अगर यह संभव है, मैं चीजों को स्थापित करने के लिए इतना Git मेरे सारे कोड मचान हैंडल करना चाहते हैं, मैं परीक्षण के लिए एक स्थानीय भंडार हो सकता है, और फिर साथ सर्वर में परिवर्तन धक्का उन्हें जीने के लिए गिट। हालांकि, मानक git push
कॉल का उपयोग करने की कोशिश में, मैं सिर्फ ऊपर असंगत शाखाओं और परस्पर विरोधी इतिहास के एक भयानक गंदगी के साथ खत्म। गिट का उपयोग कर स्टेजिंग का प्रबंधन करने का कोई तरीका है?क्या मैं दूरस्थ सर्वर को अद्यतित रखने के लिए गिट का उपयोग कर सकता हूं?
उत्तर
आप इस blog post में मंचन के लिए इस्तेमाल किया Git रेपो का एक उदाहरण:
IDE => local Git repository => remote bare Git repository
=> Git repository with the live web application
यह नंगे रेपो तरफ एक के बाद अद्यतन हुक आदेश को लाइव पर रेपो के अपडेट लागू करने में शामिल है, वेब सर्वर पक्ष।
अंतिम चरण नंगे भंडार पर "पोस्ट-अपडेट" हुक स्क्रिप्ट को परिभाषित करना है, जिसे नंगे भंडार को डेटा प्राप्त होता है।
"पोस्ट-अपडेट" हुक को सक्षम करने के लिए, हमें गिट संस्करण के आधार परhooks/post-update
निष्पादन योग्य याhooks/post-update.sample
hooks/post-update
का नाम बदलना होगा।
इस स्क्रिप्ट में, हम बस को लाइव आवेदन के फ़ोल्डर में बदलने के लिए, और पुल अभियान शुरू:
#!/bin/sh
cd $HOME/example.org
unset GIT_DIR
git pull bare master
exec git-update-server-info
कारण एक नंगे दूरस्थ रेपो होती है क्योंकि यह करने के लिए "हतोत्साहित" है एक कामकाजी निर्देशिका के साथ एक रेपो में एक धक्का करो।
हालांकि गिट एक वितरित संस्करण नियंत्रण प्रणाली है, हालांकि आमतौर पर केंद्रीय भंडार होना एक अच्छा विचार है (--bare
एक हो सकता है)। यह चीजों को सरल बना देगा।
हां, लेकिन यह एक स्टेजिंग शाखा और एक उत्पादन शाखा और एक या अधिक विकास शाखाओं के प्रबंधन के साथ कैसे मदद करता है? – Thilo
मैं एक केंद्रीय भंडार होना चाहिए, तो यह दोनों स्थानीय और लाइव सर्वर पर क्लोन, और उसके बाद में SSH और मैनुअल अद्यतन करने के लिए खींचती है? यह समझ में आता है, लेकिन ऐसा लगता है कि एक और अधिक सुरुचिपूर्ण समाधान होना चाहिए। – futuraprime
लाइव सर्वर पर एक नंगे केंद्रीय भंडार पर्याप्त होगा। चूंकि आप विरोधाभासी इतिहास प्राप्त कर रहे हैं, मुझे लगता है कि आप उत्पादन साइट में कुछ बदलाव करते हैं। यदि ऐसा करना आपके लिए सुविधाजनक लगता है, तो मैन्युअल खींचें ठीक होनी चाहिए। यदि आप इस तरह के परिवर्तनों के बिना जा सकते हैं, तो वॉनसी द्वारा सुझाए गए पोस्ट-अपडेट हुक का उपयोग करें। –
- 1. मैं Node.js का उपयोग कर दूरस्थ गिट शाखा कैसे प्राप्त कर सकता हूं?
- 2. मैं कई दूरस्थ भंडारों के साथ गिट का उपयोग कैसे कर सकता हूं?
- 3. क्या मैं अंतिम गिट पुश को पूर्ववत कर सकता हूं?
- 4. गिट क्या मैं रिमोट के रिफ्लॉग को देख सकता हूं?
- 5. एसआरपीएम अनुकूलन को ट्रैक करने के लिए मैं गिट का उपयोग कैसे कर सकता हूं?
- 6. मैं अपनी शाखा को गिट के साथ मास्टर के साथ अद्यतित कैसे रख सकता हूं?
- 7. क्या मैं असाइनमेंट सबमिशन के लिए गिट का उपयोग कर सकता हूं?
- 8. मैं JConsole का उपयोग कर दूरस्थ रूप से वेबलॉगिक से कैसे कनेक्ट कर सकता हूं?
- 9. क्या मैं विजुअल स्टूडियो टेम्पलेट के भीतर फ़ाइल को निर्देशिका में रखने के लिए TargetFileName का उपयोग कर सकता हूं?
- 10. क्या मैं गिट में फ़ाइलों को मर्ज कर सकता हूं?
- 11. क्या मैं एक गिट सबमिशन को अनपॉपलेट कर सकता हूं?
- 12. क्या मैं रिमोट गिट भंडार खाली कर सकता हूं?
- 13. क्या मैं गिटूब के बिना गिट संस्करण नियंत्रण अनुप्रयोग का उपयोग कर सकता हूं?
- 14. क्या मैं डोमेन ईमेल के लिए Google Apps का उपयोग कर सकता हूं और अभी भी ईमेल भेजने के लिए "sendmail" सर्वर का उपयोग कर सकता हूं?
- 15. क्या मैं वंशजों को पैरामीटर रहित कन्स्ट्रक्टर रखने के लिए मजबूर कर सकता हूं?
- 16. क्या मैं रैम-गहन अनुप्रयोग को स्केल करने के लिए टेराकोटा का उपयोग कर सकता हूं?
- 17. मैं प्रोजेक्ट टेम्पलेट्स के लिए गिट का उपयोग कैसे कर सकता हूं?
- 18. क्या मैं "गिट गुई" पास कर सकता हूं, कह सकता हूं, "- धैर्य" से "गिट diff"?
- 19. मैं अपने .xml संसाधन फ़ाइल को रखने के लिए प्रोगार्ड को कैसे मजबूर कर सकता हूं?
- 20. मैं एचएमवीसी आर्किटेक्चर का उपयोग किसके लिए कर सकता हूं?
- 21. मैं विंडोज पर गिट बैश में रूबी के लिए पिक का उपयोग कैसे कर सकता हूं?
- 22. क्या मैं अपने मौजूदा गिट रेपो का उपयोग openshift के साथ कर सकता हूं?
- 23. रेलवे में जावास्क्रिप्ट पुस्तकालयों को अद्यतित रखने का सबसे अच्छा तरीका क्या है?
- 24. जावामेल के साथ उपयोग के लिए मैं मेल सर्वर को कैसे कॉन्फ़िगर कर सकता हूं?
- 25. मैं गिट टैग कैसे कर सकता हूं?
- 26. क्या मैं जावा के HttpUrlConnection क्लास का उपयोग कर होस्ट हेडर को ओवरराइड कर सकता हूं?
- 27. एकाधिक गिट भंडार रखने के
- 28. क्या मैं भंडार में मिलान करने वाले फ़ाइल नामों को खोजने के लिए गिट का उपयोग कर सकता हूं?
- 29. क्या मैं पंक्तियों के सम्मिलित क्रम को निर्धारित करने के लिए SQL सर्वर पहचान कॉलम का उपयोग कर सकता हूं?
- 30. क्या मैं SQL सर्वर के विरुद्ध कुछ उपयोगकर्ताओं को प्रमाणीकृत करने के लिए ADFS 2.0 का उपयोग कर सकता हूं?
नंगे रेपो का क्या फायदा है? अंदरूनी सूत्र के रूप में इसे एक काम करने वाले पेड़ में धक्का देने के लिए निराश किया गया है, इसलिए आपने इस मध्य चरण को जोड़कर जटिलता हासिल नहीं की है। मैंने इनकी कोशिश नहीं की है और गिट को अच्छी तरह से नहीं जानते हैं, इसलिए यदि आप अधिक विस्तृत करेंगे तो – SamGoody
@ सैमगुडी: वास्तव में, मैं लाइव वेब साइट परिनियोजन के लिए * तीसरे * रेपो का उपयोग नहीं करूंगा है, लेकिन दूसरा एक * जरूरतों आदेश * सुनिश्चित करें कि कोई स्थानीय संशोधन आप इसे करने के लिए नए प्रतिबद्ध धक्का * के साथ हस्तक्षेप करने के लिए एक नंगे होने की *। http://stackoverflow.com/questions/5490434/git-live-server-best-practices/5491039#5491039 देखें। पोस्ट-प्राप्त हुक एक गिट आर्काइव (निकाला जाने वाला एक टैर) के साथ संयुक्त होता है। – VonC
यह खड़ा के रूप में काम करते हैं कभी कभी लाइव सर्वर पर किया जाता है, और फिर विकास कंप्यूटरों के लिए पीछे की ओर विलय कर दिया। (यह देखते हुए कि हमारा सेटअप असामान्य है, यह हमारी आवश्यकताओं के लिए सही है।) हमें लाइव सर्वर की आवश्यकता है ताकि परिवर्तन प्राप्त करने और धक्का देने की क्षमता हो। आदर्श रूप में, जब इसे धक्का दिया जाता है, तो परिवर्तनों को विलय किया जाना चाहिए [या किसी त्रुटि को लॉग इन किया जाना चाहिए]। गिट संग्रह उपयुक्त नहीं होगा। यह समाधान होगा, लेकिन सीधे क्यों नहीं धक्का? – SamGoody