एकल-डेवलपर GIT वर्कफ़्लो (सीधा एफ़टीपी से आगे बढ़)


11

मैं यह तय करने की कोशिश कर रहा हूं कि क्या वीसीएस में जाना मेरे लिए समझदारी है। मैं एक छोटे संगठन (5 लोगों) में एक एकल वेब डेवलपर हूं। मैं इन कारणों से VCS (Git) के बारे में सोच रहा हूं: संस्करण नियंत्रण, ऑफसाइट बैकअप, केंद्रीकृत कोड रिपॉजिटरी (घर पर पहुंच सकते हैं)।

फिलहाल मैं आम तौर पर एक लाइव सर्वर पर काम करता हूं। मैं एफ़टीपी करता हूं, अपना संपादन करता हूं और उन्हें बचाता हूं, फिर पुनः लोड करता हूं और ताज़ा करता हूं। संपादन आमतौर पर CMSes के लिए थीम / प्लगइन फ़ाइलों के लिए होते हैं (जैसे कंक्रीट 5 या वर्डप्रेस)। यह अच्छी तरह से काम करता है लेकिन कोई बैकअप और कोई संस्करण नियंत्रण प्रदान नहीं करता है।

मैं सोच रहा हूं कि इस प्रक्रिया में वीसीएस को कैसे एकीकृत किया जाए। मैं कंपनी के वेब सर्वर पर एक Git सर्वर स्थापित करने की परिकल्पना करूंगा, लेकिन मैं स्पष्ट नहीं हूं कि क्लाइंट खातों (आमतौर पर उसी सर्वर पर VPSes) में परिवर्तनों को कैसे धकेलना है - फिलहाल मैं केवल उनके विवरण के साथ SFTP में प्रवेश करता हूं और बनाता हूं सीधे परिवर्तन।

मुझे यह भी यकीन नहीं है कि क्या समझदारी से एक रिपॉजिटरी का प्रतिनिधित्व करेंगे - क्या प्रत्येक ग्राहक की वेबसाइट अपने आप मिल जाएगी?

कोई भी जानकारी या अनुभव वास्तव में सहायक होगा। मुझे नहीं लगता कि मुझे किसी भी तरह से Git की पूर्ण शक्ति की आवश्यकता है, लेकिन मूल संस्करण नियंत्रण और वास्तविक रूप से क्लाउड एक्सेस वास्तव में उपयोगी होगा।

संपादित करें: मैंने इसे उन दो विकल्पों तक सीमित कर दिया है जो सबसे समझदार लगते हैं। पहला ZweiBlumen के उत्तर पर आधारित है , जिसके द्वारा लाइव सर्वर पर संपादन किए जाते हैं और वहां से (बाहरी) Git सर्वर पर प्रतिबद्ध होते हैं। इससे यह फायदा होता है कि मेरा वर्कफ़्लो ज़्यादा नहीं बदलेगा (कमिट बनाने का अतिरिक्त चरण है, लेकिन अन्यथा यह समान है)।

दूसरा विकल्प XAMPP का उपयोग करके स्थानीय रूप से काम करना है, फिर स्थानीय मशीन से परिवर्तन करना है। केवल जब साइट लाइव हो जाती है तो मैं स्थानीय मशीन से वेब सर्वर के लिए तैयार लेख को अपलोड करता हूं (तुरंत अंतिम प्रतिबद्ध के बाद Git)। यह सिद्धांत रूप में ठीक लगता है, लेकिन अगर बाद में साइट में संशोधन की आवश्यकता होती है और मैं उन्हें लाइव सर्वर पर बनाता हूं (जैसा कि मैं आमतौर पर करता हूं) तो मुझे अपने स्थानीय रेपो में परिवर्तित फ़ाइलों की मैन्युअल रूप से प्रतिलिपि बनाने की आवश्यकता होगी, फिर उन परिवर्तनों को करें। Git सर्वर। यह बहुत जटिल लगता है और शायद मेरे वर्तमान वर्कफ़्लो से बहुत अधिक है।

मुझे लगता है कि मैं शेष # 1 को एक विकल्प दूंगा, और देखूंगा कि मुझे कैसे मिलेगा।


1
जीआईटी (या किसी अन्य वितरित वीसीएस) के बारे में याद रखने वाली बात यह है कि सभी रिपॉजिटरी कम से कम तकनीकी रूप से, सहकर्मी हैं: आपका स्थानीय रिपॉजिटरी "वास्तविक" है जैसा कि लाइव सर्वर या बैकअप रिपॉजिटरी में से एक है। यह आपकी वर्कफ़्लो नीतियां हैं जो उन्हें संरचना प्रदान करती हैं - इसलिए यदि आप वास्तव में लाइव सर्वर पर प्राथमिक कार्य करते रहना चाहते हैं, तो आप कर सकते हैं ...
21

धन्यवाद, यह जानना अच्छा है। Git के अंतर्निहित लचीलेपन के लिए एक 'सर्वोत्तम अभ्यास' शुरुआती बिंदु पर काम करना कठिन हो जाता है - जो कि एक अनुभवी उपयोगकर्ता के POV से एक ताकत है लेकिन एक noob से एक कमजोरी है!
मेल्टिन नं २

जवाबों:


3

मैं क्या (सबवर्सन के साथ, लेकिन Git के साथ भी काम करूंगा) एक सबवर्सन रिपॉजिटरी के लिए सब कुछ प्रतिबद्ध है, लेकिन जाहिर है कि आवश्यक रूप से परियोजनाओं, शाखाओं, टैग में विभाजित हो जाते हैं। फिर मैं इन रिपॉजिटरी को लाइव सर्वर पर चेक करता हूं। इस प्रकार जब मैं अपनी देव मशीन में बदलाव करता हूं और रिपॉजिटरी में यह करता हूं, तो यह अक्सर बदलावों को लाइव करने के लिए लाइव सर्वर पर चेक आउट कॉपी को अपडेट करने का मामला होता है। अतिरिक्त बोनस यह है कि अगर मुझे लाइव सर्वर पर त्वरित सुधार करने की आवश्यकता है तो मैं सर्वर से रिपॉजिटरी के लिए यह काम करता हूं और अपने देव मशीन पर काम की प्रतिलिपि अपडेट करता हूं।

मुझे यकीन है कि इसे प्रबंधित करने के अन्य तरीके भी हैं, लेकिन मुझे यह बिल्कुल सीधा लगता है और मैं बिल्कुल आपके जैसी स्थिति में हूं: एक छोटे संगठन में एक डेवलपर (4 लोग)।


1
आपके जवाब का धन्यवाद! क्या इसका मतलब है कि आप स्नैपशॉट को अपनी स्थानीय मशीन में खींचते हैं, बनाते हैं और परिवर्तन करते हैं, तो लाइव सर्वर (SSH द्वारा) में एक पुल अनुरोध करते हैं? क्या होगा अगर परिवर्तन वास्तव में छोटा है? क्या आप विकास के लिए एक स्थानीय वेब सर्वर चलाते हैं? (मैं सरल सीएसएस परिवर्तनों के लिए उस प्रक्रिया से नहीं जा सकता था .. मैं पागल हो जाऊंगा!)
melat0nin

1
मामूली सीएसएस परिवर्तन के लिए मैं सर्वर पर सीधे परिवर्तन कर दूंगा और फिर उस परिवर्तन को सर्वर से रिपॉजिटरी में कर दूंगा। जब मुझे साइट पर अधिक गंभीर काम करना होता है तो मैं रिपॉजिटरी से साइट के नवीनतम संस्करण के साथ अपने देव मशीन पर साइट को अपडेट करूंगा। मुझे लगता है कि यह वास्तव में कोई फर्क नहीं पड़ता है जहां आप परिवर्तन (सर्वर या देव मशीन) करते हैं जब तक आप इसे भंडार के लिए प्रतिबद्ध करते हैं।
ज़ेविब्लुमेन २

तो आप इसके लिए किन उपकरणों का उपयोग करते हैं? एफ़टीपी फ़ाइल को सीधे सर्वर पर बदलने के लिए, फिर पृष्ठभूमि में एक एसएसएच सत्र खुले और फिर से गेट सर्वर पर कमिट करने के लिए?
melat0nin

1
हां, यह मूल रूप से है। वास्तव में मैं तोड़फोड़ का उपयोग करता हूं। हमारे पास विंडोज के साथ-साथ लिनक्स सर्वर भी हैं। उन पर विंडोज I दूरस्थ डेस्कटॉप पर, सीएसएस परिवर्तन करें और TortoiseSVN का उपयोग करके प्रतिबद्ध करें। Linux पर मैं SSH सत्र का उपयोग करता हूं और परिवर्तन करने के लिए विम (लेकिन आप अपने परिवर्तनों को मेरे अनुमान से FTP भी कर सकते हैं)।
ZweiBlumen

मैं सर्वर पर संपादन के आपके सुझाव के साथ चला गया हूं, फिर वहां से एसएसएच के माध्यम से कमिट कर रहा हूं, जो अब कुछ दिनों के लिए कर रहा हूं। वास्तव में अच्छी तरह से काम करने लगता है, धन्यवाद!
melat0nin

2

यह एक बनाने के लिए नहीं बल्कि आसान है post-updateहुक , कि स्वचालित रूप से अद्यतन (साथ निर्यात git archiveजब आप किसी विशेष शाखा को धक्का वेब सर्वर डेटा निर्देशिका सुरक्षा कारणों के लिए पसंद किया जाता है)।

तो एक हुक रिपॉजिटरी स्थापित किया है कहीं (सुरक्षा कारणों से मैं इसे वेब से अलग सर्वर पर डालूंगा) ऐसे हुक के साथ। बड़े बदलावों का परीक्षण करने के लिए आपको निश्चित रूप से परीक्षण सर्वर की आवश्यकता होगी, जो या तो आपके स्थानीय मशीन पर हो सकता है या अलग-अलग शाखा में धक्का देकर अद्यतन किया जा सकता है। या तो मामले में आप इसे केवल वर्तनी और धक्का द्वारा तुच्छ वर्तनी और सीएसएस सुधारों के लिए बायपास कर सकते हैं।


1

मैं इन चरणों का पालन करूंगा:

  1. रिमोट सर्वर को रिमोट पुश / पुल के लिए एक उचित सार्वजनिक / निजी कुंजी जोड़ी के साथ सेट करें
  2. दो शाखाओं का परीक्षण और विमोचन करें
  3. परीक्षण शाखा में परीक्षण वातावरण के साथ स्थानीय रूप से विकसित करें
  4. जब आप रिलीज़ शाखा के साथ खुश हो जाते हैं और दूरस्थ सर्वर पर धकेल देते हैं
  5. रिलीज के नवीनतम संस्करण में अपडेट करने के लिए रिमोट सर्वर पर हुक

प्रति वेबसाइट एक रेपो सेट करें, ताकि वे एक-दूसरे को अव्यवस्थित करने से रोक सकें। अलग-अलग शाखाएं आपको वर्तमान "अच्छा" संस्करण लॉक होने से बचने की अनुमति देती हैं जो आप वर्तमान में काम कर रहे हैं, जो कार्य कर सकता है या नहीं।


तो क्या मैं सही तरीके से समझ रहा हूं - Git के लिए दो सर्वर (1) हैं, (2) लाइव वेबसर्वर, और एक स्थानीय विकास मशीन। देव को स्थानीय रूप से किया जाता है, फिर Git सर्वर पर धकेल दिया जाता है जिसमें लाइव सर्वर को अपडेट करने के लिए हुक होता है?
melat0nin

@ melat0nin ऐसा करने का एक तरीका है। आपके पास जियो सर्वर से क्रोन जॉब के रूप में लाइव सर्वर पुल हो सकता है। या, आपके पास 2 मशीनें हो सकती हैं। स्थानीय देव मशीन, और लाइव उत्पादन वेबसर्वर। इस तरह, जब भी आप धक्का देते हैं, तो रेपो को देव मशीन से उत्पादन मशीन अपडेट में नवीनतम रिलीज शाखा में धकेल देते हैं।
स्पेंसर रथबुन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.