2010-10-02 17 views
107

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

 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 का उपयोग कब करना चाहिए?

+115

तीरों के लिए +1;) – takeshin

+1

105 लोगों ने टिप्पणी कैसे की है * टिप्पणी के बारे में * 1 * *, लेकिन केवल 98 लोगों ने प्रश्न पूछा? – drs

+1

@drs मुझे लगता है कि आपको इसके लिए एक अलग प्रश्न पूछने की आवश्यकता है;) – CP3O

उत्तर

57

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

+0

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

18

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

* इंटीग्रेटर: "A fairly central person acting as the integrator in a group project receives changes made by others, reviews and integrates them and publishes the result for others to use..."


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

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

2।उत्पादन से रेपो को सर्वर से

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

3. डेवलपर्स खत्म बदलते

5. जब मंचन के बाद मचान सर्वर से

4. धक्का फ़ाइलें अपने स्थानीय मशीन के लिए मचान से रेपो क्लोन तैयार है, सब कुछ धक्का उत्पादन के लिए

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

+0

उत्तर के लिए धन्यवाद। – kayue

+9

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

+2

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

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