गेट वर्क / स्टेजिंग सर्वर वर्कफ़्लो


108

वर्तमान में मेरी वेबसाइट (उत्पादन सर्वर) में पहले से ही बहुत सारे कोड हैं। और अब मैं अपनी परियोजनाओं के लिए Git का उपयोग शुरू करना चाहता हूं और अपनी टीम के लिए स्टेजिंग सर्वर सेटअप करना चाहता हूं। क्या कोई मुझे कोई सलाह दे सकता है?

यहाँ मेरे दिमाग में तस्वीर है:

        Production        - Production server which already have codes
            ↑             
         Staging          - New staging server, will install Trac too
         ↗↙ ↖↘          
  Developer1  Developer2  - Local development 

मेरा सवाल है, मुझे कैसे शुरू करना चाहिए?

यहाँ मेरे दिमाग में कुछ कदम हैं:

  1. एक ऐसा git initउत्पादन सर्वर में (यह सुरक्षित है?)
  2. clone रेगो प्रोडक्शन से स्टेजिंग सर्वर तक
  3. डेवलपर्स cloneने मंचन से अपने स्थानीय मशीन तक रेपो
  4. push परिवर्तन के बाद सर्वर के फाइल को बदलना
  5. जब स्टेजिंग तैयार हो, pushतो उत्पादन के लिए सब कुछ

क्या यह कार्य प्रवाह समझ में आता है, या इसे करने के कुछ बेहतर तरीके हैं?

क्या होगा यदि मैं केवल एक फ़ाइल बदलना चाहता हूँ?

क्या इस प्रक्रिया में मूल / गुरु का कोई लेना देना है ?? मूल कौन है? क्या मैं कई मूल को समाप्त करने जा रहा हूँ ??

इसके अलावा, डेवलपर branchको इस मामले में कब उपयोग करना चाहिए ?

जवाबों:


59

स्टेजिंग के लिए केवल उत्पादन और विकास शाखा के लिए मास्टर शाखा का उपयोग करना बेहतर है। प्रत्येक डेवलपर को नई सुविधाओं को जोड़ने के लिए स्थानीय शाखा बनाना चाहिए और फिर विकास शाखा के साथ विलय करना चाहिए। यदि आप एक गिट के लिए नए हैं, तो उपयोग करने का प्रयास करें - http://github.com/nvie/gitflow git ब्रांचिंग मॉडल का वर्णन करने वाली अच्छी तस्वीर भी है - http://nvie.com/posts/a-successful-git- शाखाओं में मॉडल /


यह एक बेहतर जवाब है। मैं गिट ब्रांचिंग की अवधारणा से बहुत परिचित नहीं था।
कायु

@bUg। क्या आपके पास डेवलपमेंट ब्रांच को समझाने वाले किसी संसाधन का लिंक है -> स्टेजिंग सिस्टम और मास्टर ब्रांच को पुश -> अधिक विस्तार से प्रोडक्शन सर्वर को पुश ? शानदार लेख एक सफल गिट ब्रांचिंग मॉडल उस हिस्से का उल्लेख नहीं करता है, भले ही वह शाखा और संस्करण की बहुत अच्छी अवधारणाओं का उल्लेख करता है।
एडगर अल्लोरो

19

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

* इंटीग्रेटर : " एक समूह परियोजना में इंटीग्रेटर के रूप में काम करने वाला एक काफी केंद्रीय व्यक्ति दूसरों द्वारा किए गए बदलावों की समीक्षा करता है, उन्हें एकीकृत करता है और दूसरों के उपयोग के लिए परिणाम प्रकाशित करता है ... "


1. उत्पादन सर्वर में एक गिट इनिट है (क्या यह सुरक्षित है?)

हां यह सुरक्षित है, लेकिन आपको निश्चित रूप से इस रेपो पर बहुत ही प्रतिबंधात्मक अनुमति देनी होगी। मैं शायद द्वारा शुरू होगा curl, एक स्थानीय डिस्क को पूरे वेब साइट ing अगर मैं पहले से ही यह नहीं है।

2. उत्पादन से स्टेजिंग सर्वर के लिए रेपो क्लोन

आपके पास उत्पादन और स्टेजिंग सर्वर दोनों से अलग "सेंट्रल" रेपो होना चाहिए। कि एक क्लोन किया जा सकता है और आवश्यकतानुसार धक्का दिया जा सकता है।

3. डेवलपर्स रेपो को अपने स्थानीय मशीन के मंचन से क्लोन करते हैं

4. स्टेजिंग सर्वर पर फाइल को बदलने के बाद पुश करें

5. जब स्टेजिंग तैयार हो, तो उत्पादन के लिए सब कुछ धक्का दें

"मचान" को "केंद्रीय" से बदलें और मुझे लगता है कि आप ठीक हैं, लेकिन एक बड़ा मुद्दा यह है कि आप शाखाओं और विलय के साथ कैसे काम करेंगे, जैसा कि बुग बताते हैं।


10
1: Git रेपो को उत्पादन में सुरक्षित बनाने के लिए, "। सभी" के साथ .htaccess फ़ाइल जोड़ना सुनिश्चित करें।
कायाउ

2
2: फेलिक्सज़ के "सेंट्रल" रेपो में नंगे रेपो का जिक्र है। नंगे रेपो बनाने के लिए --bare कमांड का उपयोग करें।
कायु

1
@ एक्यू 1: इससे भी बेहतर, RedirectMatch 404 /\.gitअपने उत्पादन में जोड़ें अपने बचाव के लिए .gitignore , .gitattributes और .git फ़ोल्डर।
सिंह
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.