आपके प्रश्न का संक्षिप्त उत्तर हां है ।
मैं कॉन्फ़िगरेशन फ़ाइलों का ट्रैक रखने के लिए Git (या किसी अन्य संस्करण नियंत्रण सॉफ़्टवेयर) की अनुशंसा करने में संकोच नहीं करूंगा। ऐसा करने के बाद से, मैं अधिक उत्पादक (विशेष रूप से नए प्रतिष्ठानों को कॉन्फ़िगर करने के लिए) कर रहा हूं और मेरी कॉन्फ़िगरेशन फ़ाइलों में अधिक विश्वास है। संस्करण नियंत्रण के साथ, मेरे पास एक रिकॉर्ड है कि क्या बदलाव किए गए थे और प्रतिबद्ध संदेश यह कारण प्रदान करता है कि बदलाव क्यों किया गया था। यदि किसी परिवर्तन का कोई दुष्प्रभाव नहीं है, तो मैं आसानी से लॉग / इतिहास की समीक्षा कर सकता हूं कि यह देखने के लिए कि क्या प्रभाव हुआ।
व्यक्तिगत रूप से, मैं /
रूट डायरेक्टरी के तहत सभी फाइलों को ट्रैक करने से सावधान रहूंगा । अनदेखा करने के लिए रास्तों की सूची बड़ी और अस्पष्ट हो सकती है। मैं फ़ाइलों के प्रत्येक तार्किक सेट को अपने स्वयं के भंडार में रखना पसंद करता हूं।
मैं मैन्युअल रूप से अपने व्यक्तिगत कॉन्फ़िगरेशन / स्टार्ट-अप फ़ाइलों का ट्रैक रखने के लिए Git का उपयोग करता हूं , उदाहरण के लिए, विम कॉन्फ़िगरेशन, बैश फ़ंक्शन, उपनाम इत्यादि - कैसे Git के साथ $ HOME ट्रैक करने के लिए सूचीबद्ध दृष्टिकोण के समान । मैं फ़ाइलों के प्रत्येक सेट को अपने स्वयं के भंडार में रखता हूं और घर की निर्देशिका के प्रतीकात्मक लिंक का उपयोग करता हूं।
के लिए प्रणाली विन्यास फाइल, मैं साथ Git का उपयोग Etckeeper मेरे में फ़ाइलों का ट्रैक रखने के /etc
निर्देशिका।
कमियां
एक समस्या से सावधान रहना है अगर ट्रैक की जा रही फ़ाइलों में हार्ड लिंक शामिल हैं । जब Git का उपयोग फ़ाइलों की जांच करने के लिए किया जाता है या अन्यथा कार्यशील पेड़ को संशोधित किया जाता है, तो यह फ़ाइलों को अनलिंक करता है और फिर उन्हें पुनः बनाता है । फुलर स्पष्टीकरण के लिए गिट, डॉटफाइल्स और हार्डलिंक देखें ।
Etckeeper
एटकीपर का उपयोग / आदि में किए गए परिवर्तनों का पूरा इतिहास रखने के लिए किया जा सकता है। यह फाइल मेटाडेटा को ट्रैक करता है कि रिवीजन कंट्रोल सिस्टम सामान्य रूप से समर्थन नहीं करता है, लेकिन इसके लिए महत्वपूर्ण है /etc
, जैसे कि अनुमतियाँ /etc/shadow
।
यह उपयुक्त और यम (और इसके डिफ़ॉल्ट कॉन्फ़िगरेशन में) जैसे पैकेज प्रबंधकों में हुक करता है, पूर्व और बाद की स्थापना चलाता है ताकि सभी परिवर्तनों को /etc
ट्रैक किया जा सके।
यदि एक पैकेज स्थापित या हटाया जाता है, तो पैकेज संचालन से पहले / अनकही सभी परिवर्तन किए जाएंगे ताकि दो आवागमन हो सकें:
- "यम रन से पहले / आदि में अनधिकृत परिवर्तन सहेजना"
- "यम रन के बाद / आदि में बदलाव"
मैंने इसे डेबियन और रेड हैट-आधारित वितरण के साथ उपयोग किया है और मुझे पता है कि यह आर्क पैकेज प्रबंधन का समर्थन करता है। मैं यह नहीं कह सकता कि यह जेंटू प्रणाली में कितना स्वचालन जोड़ देगा लेकिन इसके लिए एक पैकेज उपलब्ध है ।
यह कॉन्फ़िगरेशन फ़ाइलों को दूरस्थ रिपॉजिटरी में पुश करने का भी समर्थन करता है
(जो निश्चित रूप से, निजी होना चाहिए)।
विन्यास
पैकेज को स्थापित करने के बाद आपको इसे कॉन्फ़िगर करने की आवश्यकता हो सकती है ( /etc/etckeeper/etckeeper.conf
), उदाहरण के लिए, उबंटू सिस्टम पर डिफ़ॉल्ट संस्करण नियंत्रण प्रणाली को गिट से बाजार में बदल दिया जाता है। आप दैनिक ऑटो-कमिट को अक्षम करना भी पसंद कर सकते हैं ।
दैनिक ऑटोकॉमिट
दैनिक क्रोन जॉब द्वारा परिवर्तन स्वचालित रूप से किए जा सकते हैं । यह कष्टप्रद हो सकता है क्योंकि रिपॉजिटरी कई स्वचालित प्रतिबद्ध संदेशों के साथ बंद हो सकती है।
मैं इसमें उपयुक्त पंक्ति को बताता हूं /etc/etckeeper/etckeeper.conf
:
sed -i '/AVOID_DAILY_AUTOCOMMITS/s|^#* *||' /etc/etckeeper/etckeeper.conf
कुछ फाइलों पर ध्यान न दें
/etc/.gitignore
उन फ़ाइलों को निर्दिष्ट करने के लिए संपादित करें जिन्हें ट्रैक नहीं किया जाना चाहिए।
प्रथम रन
कॉन्फ़िगर करने के बाद, निम्न कमांड चलाएँ:
sudo etckeeper init
sudo etckeeper commit "Initial commit"
यदि आपकी वर्तमान निर्देशिका है etc
, तो आप नियमित git
कमांड चला सकते हैं , जैसे,
sudo git status
sudo git log