2010-08-27 19 views
23

स्वचालित रूप से मिरर करें बाहरी उपवर्तन भंडार का उपयोग करने के दुष्प्रभावों में से प्रत्येक को प्रत्येक प्रतिबद्धता पर स्वचालित ऑफ़साइट बैकअप प्राप्त हो रहा था।एक गिट रिपोजिटरी

मैं गिट का उपयोग करके इसे प्राप्त करना चाहता हूं।

यानी मेरे स्थानीय भंडार में प्रत्येक प्रतिबद्धता स्वचालित रूप से बाहरी पर जाती है ताकि दो भंडार हमेशा समन्वयित हो जाएं।

मुझे लगता है कि एक पोस्ट-प्रतिबद्ध हुक जाने का रास्ता होगा। क्या किसी के पास इसका कोई विशिष्ट उदाहरण है?

उत्तर

18

मैंने इस उद्देश्य के लिए एक पोस्ट-प्रतिबद्ध हुक लिखा था। हुक स्वयं सरल है; बस निम्नलिखित सामग्री के साथ अपने .git/hooks/ निर्देशिका के लिए post-commit नाम की एक फ़ाइल जोड़ें:

git push my_remote 

post-commit फ़ाइल निष्पादन योग्य होना चाहिए। यह सुनिश्चित करने के लिए कि आप इस हुक को काम करने के लिए my_remote नाम के साथ उपयुक्त remote भंडार जोड़ें।

मैंने post-merge नामक एक सिम्लिंक भी बनाया जो post-commit पर इंगित करता है। यह वैकल्पिक है। यदि आप ऐसा करते हैं तो आप विलय के बाद भी ऑटो-सिंक करेंगे।

अद्यतन: आप यह सुनिश्चित करें कि आपके सर्वर, और अपने दर्पण सिंक्रनाइज़ेशन से बाहर नहीं मिलता है, और सुनिश्चित करें कि सभी शाखाओं को भी समर्थन कर रहे हैं चाहते हैं, अपने post-commit हुक का उपयोग कर सकते हैं:

git push my_remote -f --mirror 
+1

हैं वहाँ कोई शेष परिदृश्य जहां रेपो सिंक से बाहर हो सकता है? मैं कैसे जांचूं (और पुनः सिंक)। क्या लोग बाहरी रेपो में प्रतिबद्ध हो सकते हैं? –

+0

'क्या लोग बाहरी रेपो पर प्रतिबद्ध हो सकते हैं?': यह इस बात पर निर्भर करेगा कि बाहरी रेपो कॉन्फ़िगर कैसे किया गया है। यदि आप केवल पढ़ने के लिए दर्पण चाहते हैं तो आप दूसरों को करने से रोक सकते हैं। 'अगर मैं रेपो को कोई और काम नहीं कर रहा हूं तो मैं कैसे जांचूं (और फिर से सिंक)' तो मुझे रीपोज़ सिंक से बाहर कैसे हो सकता है इसके कई तरीके नहीं दिखते हैं। यदि वे करते हैं तो हमेशा विलय होता है। –

+0

क्षमा करें। मेरा अतिरिक्त प्रश्न बुरी तरह से बुलाया गया था। –

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