2012-10-24 23 views
6

मैंने अभी एक ऐसी कंपनी के लिए वेब विकास की स्थिति ली है जो कई अलग-अलग साइटों का प्रबंधन करता है। कुछ अलग-अलग साइट "डिज़ाइन" हैं और प्रत्येक डिज़ाइन के लिए, एक ही चीज़ के कुछ कुकी-कटर प्रकार संस्करण हैं। वे अलग-अलग साइटें हैं, लेकिन ढांचा उतना ही करीब है, क्योंकि केवल सामग्री और कुछ स्टाइल बदलते हैं, इसलिए पिछला लड़का सिर्फ विशिष्ट मेजबानों को प्रतिलिपि बना रहा था।जीआईटी के साथ कई समान साइटें? या कुछ अन्य संस्करण नियंत्रण?

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

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

कोई विचार? या, अगर मैं इस बारे में पूरी तरह गलत हूं, तो मुझे भी बताएं। मैंने कभी इस आकार (यानी बहुत सारी साइटों) से पहले कभी भी निपटा नहीं है, और यह वास्तव में गन्दा लगता है। मुझे पता है कि ऐसा करने का एक बेहतर तरीका है!

धन्यवाद!

उत्तर

4
  1. अलग विकास और विभिन्न कार्यों में तैनात (कोई जरूरत भंडार के लिए/या सिर्फ WC/पर हर उत्पादन)
  2. अच्छा शाखाओं-विलय के साथ कोई एससीएम
  3. सभी साइटों की आम हिस्सा काम करेंगे (ढांचा) अलग किया जा सकता है (या कम से कम आप एससीएम विशेष तरीकों का उपयोग कर अंतिम उत्पादों से जुड़ा हुआ है (यह करने के लिए) एक इकाई में कोशिश कर सकते हैं, - submodules, बाहरी)
6

git submodules एक अच्छा तरीका है रखने के लिए रहने के अन्य रेपो का ट्रैक रों, सहित:

  • आम फ़ाइल
  • एक विशिष्ट फ़ाइल के लिए के लिए एक।

इसका मतलब है कि आपकी प्रत्येक वेबसाइट "पेरेंट" रेपो है जिसमें ऊपर वर्णित दो सबमिड्यूल शामिल हैं।

यह चाल विशेष रूप से आम फ़ाइल का प्रतिनिधित्व करने वाले सबमिशन के लिए है, इसे वेबसाइट में following the latest commits of a branch "घोषित करना है।

git submodule add -b master common url/to/common/files/repo 

इस तरह, हर बार जब आप उन वेबसाइट रेपो में से एक पर काम करना है, तुम सब पहले क्या करने की जरूरत है a:

git submodule update --remote 

और आप नवीनतम उर्ध्वप्रवाह के साथ काम करने के लिए सुनिश्चित कर रहे हैं सामान्य फाइलों को आज तक।