2012-09-10 16 views
8

यह समस्या git - how to mirror file from other repo या How do I update my bare repo?- एक कॉलर के साथ क्लोन के साथ क्लोन किए गए गिट रिपोजिटरी को कैसे बदलें --mirror?

के बाद से भंडार --mirror साथ क्लोन एक नंगे भंडार है के रूप में ही नहीं है, मैं एक भंडार --bare साथ क्लोन एक --mirror साथ क्लोन की तरह हो कर सकते हैं? क्या यह कॉन्फ़िगरेशन फ़ाइल को बस संशोधित करके किया जा सकता है?

यदि नहीं, तो क्या कोई अन्य विधि है जो एक नंगे भंडार को दर्पण भंडार में परिवर्तित कर सकती है?

एक और सवाल, मैं एक दर्पण रेपो में गिट पुश का उपयोग क्यों नहीं कर सकता, जबकि यह आदेश एक नंगे रेपो में चलाया जा सकता है?

+2

आप तुच्छता से किसी भी संपादक में कॉन्फ़िग फ़ाइल को संपादित कर सकते हैं। बस मिरर रेपो (+ रेफर्स/*: रेफ्स/*) में शाखा के संदर्भों को संदर्भित करें, रिमोट ट्रैकिंग शाखाओं (पैक-रेफरी और रेफ/रिमोट/*/* से) को हटाएं, 'दर्पण = सत्य' जोड़ें , और एक 'गिट fetch' फिर से चलाने। – fork0

+0

@ fork0 यह मामूली ऑपरेशन काम नहीं करता है ... – thinke365

+0

बिल्कुल क्या काम नहीं करता है? त्रुटि संदेश? (बीटीडब्ल्यू, मैंने उल्लेख नहीं किया कि कौन सा अनुभाग 'दर्पण = सत्य' जोड़ा जाना है। यह '[कोर] 'है)। – fork0

उत्तर

2

यदि आपने git clone --mirror के साथ अपना रेपो क्लोन किया है, तो git push --all, default matching push policy के बाद, सभी स्थानीय शाखाओं को रिमोट रेपो में धक्का देगी।

लेकिन अगर अपने दूरस्थ रेपो (अपने स्थानीय रेपो यानी से क्लोन किया गया है एक और दूरस्थ रेपो) एक दूरस्थ संदर्भ के रूप में अपने स्थानीय रेपो में जोड़ दिया गया है, तो एक git push --all secondRemoteRepo कई मिलान शाखा को पुश करने के लिए नहीं मिलेगा, जब तक कि आप उन शाखाओं को पहले नहीं लाएंगे।
तो यह काम करना चाहिए:

$ git config remote.origin.fetch "+refs/*:refs/*" 
$ git config remote.origin.mirror true 

फिर एक git fetch और सब कुछ करने के:

git fetch secondRemoteRepo 
git push --all secondRemoteRepo 
8

भंडार में git clone --bare साथ क्लोन से मेल खाता है क्या यह एक git clone --mirror साथ होगा बदलने के लिए, निम्न कार्य करें अद्यतित होना चाहिए।

0
आजकल

:

git remote add --mirror=fetch origin <url> 

फिर

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