हम अपनी दुकान में बनाए गए अधिकांश वेब अनुप्रयोगों के लिए git का उपयोग करते हैं, और हालांकि एप्लिकेशन स्वयं विभिन्न तकनीकों (PHP, रेल, आदि) का उपयोग करते हैं, लेकिन हमारे पास आमतौर पर एक स्टेजिंग और उत्पादन होता है प्रत्येक साइट के लिए सर्वर। आम तौर पर, इन सर्वरों में डेटाबेस प्रमाण-पत्रों के साथ-साथ विभिन्न पर्यावरण-आधारित कॉन्फ़िगरेशन सेटिंग्स (जैसे कैशिंग) के विभिन्न सेट होते हैं। हमारे वर्कफ़्लो में आम तौर पर प्रति परियोजना दो गिट शाखाओं को बनाए रखना शामिल होता है: मास्टर, जो उत्पादन सर्वर को दर्शाता है, और स्टेजिंग, जो स्टेजिंग को दर्शाता है। स्टेजिंग (या एक उप-शाखा) पर नई विशेषताएं विकसित की गई हैं और इसे पूरा करने और तैनाती पर मास्टर में वापस विलय कर दिया गया है।गिट: एप्लिकेशन कॉन्फ़िगरेशन और विभिन्न वातावरण
मेरा प्रश्न शाखा-और पर्यावरण-विशिष्ट कॉन्फ़िगरेशन फ़ाइलों को बनाए रखने के सर्वोत्तम तरीके के संबंध में है। मैंने here और here के समान प्रश्नों के उत्तर देखे हैं, और न ही वास्तव में संतुष्ट हैं। मुख्य दो दृष्टिकोण ए) प्रतीत होता है कि गिट के purview के बाहर कॉन्फ़िगरेशन फ़ाइलों को छोड़ने के लिए .gitignore बहिष्करण का उपयोग करना, या बी) परावर्तक, पर्यावरण-जागरूक कोड लिखना जो निर्धारित करता है उदा। मेजबाननाम के आधार पर उपयोग करने के लिए डेटाबेस प्रमाण पत्र क्या हैं। ए के साथ मेरी समस्या यह है कि यह केवल कॉन्फ़िगरेशन फ़ाइलों के एक सेट को कोडबेस में मौजूद होने की अनुमति देता है (वर्तमान शाखा के बावजूद), इसलिए अन्य पर्यावरण की कॉन्फ़िगरेशन फ़ाइलें खो जाती हैं। बी), दूसरी ओर, ऐसा लगता है कि कोडबेस के अनावश्यक संशोधन की आवश्यकता है जो एप्लिकेशन की कार्यक्षमता से संबंधित नहीं है।
आदर्श रूप से, मैं एक निश्चित शाखा के भीतर कॉन्फ़िगरेशन फ़ाइलों को "लॉक" करने का एक तरीका चाहूंगा, ताकि जब भी मैं मास्टर चेकआउट करता हूं, मुझे मास्टर कॉन्फ़िगरेशन फ़ाइलें मिलती हैं, और जब भी मैं स्काउटिंग स्टेजिंग करता हूं, मुझे स्टेजिंग कॉन्फ़िगरेशन फ़ाइलें मिलती हैं। इसके अतिरिक्त, मास्टर में स्टेजिंग विलय को किसी भी तरह से मास्टर कॉन्फ़िगरेशन फ़ाइलों को प्रभावित नहीं करना चाहिए। आज तक, हमने गिट रूट के बाहर पर्यावरण-विशिष्ट कॉन्फ़िगरेशन फ़ाइलों वाले फ़ोल्डरों को रखकर और उचित फ़ाइलों को मैन्युअल रूप से कोडेबेस में मैन्युअल रूप से स्थानांतरित करने के साथ निपटाया है, लेकिन यह निश्चित रूप से हैकिश (और संभावित रूप से खतरनाक) है।
क्या गिट का उपयोग करके इसे पूरा करने का कोई तरीका है?
आपके विचार के लिए धन्यवाद!
http://stackoverflow.com/questions/2154948/how-can-i-track-system-specific-config-files-in-a-repo-project/2155355#2155355 http: // stackoverflow के साथ संयुक्त होगा .com/प्रश्न/3207575/कैसे-करें-i-open-source-my-rails-apps-बिना-देने-दूर-ऐप्स-गुप्त-कुंजी-और/3207608 # 3207608 यहां सहायता करें? – VonC