अंतर यह है कि जब --mirror
का उपयोग कर, सभी refs कॉपी कर रहे हैं के रूप में है। इसका मतलब है सबकुछ: रिमोट-ट्रैकिंग शाखाएं, नोट्स, रेफरी/मूल/* (फ़िल्टर-शाखा से बैकअप)। क्लोन रेपो में यह सब है। यह भी स्थापित किया गया है कि एक दूरस्थ अद्यतन मूल से सबकुछ फिर से प्राप्त करेगा (कॉपी किए गए रेफरी को ओवरराइट कर रहा है)। विचार वास्तव में प्रतिलिपि को मिरर करना है, कुल प्रतिलिपि बनाने के लिए, ताकि आप उदाहरण के लिए कई स्थानों पर अपने केंद्रीय रेपो को होस्ट कर सकें या इसे वापस कर सकें। एक बहुत अधिक सुरुचिपूर्ण गिट तरीके को छोड़कर, रेपो की प्रतिलिपि बनाने के बारे में सोचें।
नई documentation काफी यह सब कहते हैं:
--mirror
स्रोत भंडार का एक दर्पण सेट करें। यह --bare
का तात्पर्य है। --bare
की तुलना में, --mirror
न केवल लक्ष्य की स्थानीय शाखाओं के स्रोत की स्थानीय शाखाओं को मानचित्र करता है, यह सभी रेफरी (रिमोट शाखाओं, नोट्स इत्यादि सहित) को मानचित्र करता है और एक रेफस्पेक कॉन्फ़िगरेशन सेट करता है जैसे कि इन सभी रेफरी को git remote update
द्वारा अधिलेखित किया जाता है लक्ष्य भंडार।
मेरे मूल जवाब भी एक नंगे क्लोन और एक सामान्य (गैर नंगे) क्लोन के बीच मतभेद का उल्लेख किया - गैर नंगे क्लोन रिमोट ट्रैकिंग शाखाओं, केवल HEAD
के लिए एक स्थानीय शाखा बनाने सेट, जबकि नंगे क्लोन सीधे शाखाओं की प्रतिलिपि बनाता है।
मान लीजिए मूल में कुछ शाखाएं हैं (master (HEAD)
, next
, pu
, और maint
), कुछ टैग (v1
, v2
, v3
), कुछ सुदूर शाखाओं (devA/master
, devB/master
), और कुछ अन्य refs (refs/foo/bar
, refs/foo/baz
, जो हो सकता है नोट्स, स्टैश, अन्य देवताओं के नामस्थान, जो जानता है)।
git clone origin-url
(गैर नंगे): यदि आप टैग की नकल की के सभी मिल जाएगा, एक स्थानीय शाखा master (HEAD)
एक दूरस्थ शाखा origin/master
, और दूरदराज शाखाओं origin/next
, origin/pu
, और origin/maint
पर नज़र रखने। ट्रैकिंग शाखाएं स्थापित की गई हैं ताकि यदि आप git fetch origin
जैसे कुछ करते हैं, तो वे आपकी अपेक्षा के अनुसार लाए जाएंगे। किसी भी दूरस्थ शाखा (क्लोन रिमोट में) और अन्य रेफरी पूरी तरह से अनदेखा कर रहे हैं।
git clone --bare origin-url
: आप टैग की नकल की के सभी मिल जाएगा, स्थानीय शाखाओं master (HEAD)
, next
, pu
, और maint
, कोई रिमोट ट्रैकिंग शाखाओं। यही है, सभी शाखाओं की प्रतिलिपि बनाई गई है, और यह पूरी तरह से स्वतंत्र है, फिर से लाने की कोई उम्मीद नहीं है। किसी भी दूरस्थ शाखा (क्लोन रिमोट में) और अन्य रेफरी पूरी तरह से अनदेखा कर रहे हैं।
git clone --mirror origin-url
: उन सभी रेफरी में से प्रत्येक अंतिम की प्रतिलिपि बनाई जाएगी। आप सभी टैग, स्थानीय शाखाओं master (HEAD)
, next
, pu
, और maint
, दूरस्थ शाखाओं devA/master
और devB/master
, अन्य refs refs/foo/bar
और refs/foo/baz
मिलेगा। सब ठीक है जैसा कि यह क्लोन रिमोट में था। रिमोट ट्रैकिंग सेट अप की गई है ताकि यदि आप git remote update
चलाते हैं तो सभी रेफरी मूल से ओवरराइट हो जाएंगे, जैसे कि आपने अभी दर्पण हटा दिया होगा और इसे पुनः प्राप्त कर दिया होगा। चूंकि दस्तावेज़ों ने मूल रूप से कहा था, यह एक दर्पण है। यह एक कार्यात्मक रूप से समान प्रति होना चाहिए, मूल के साथ विनिमयशील।
उपयोगी
fetch
कुंजी, आप इसे अपडेट कर सकते हैं, जिसका मतलब है, नहीं है, लेकिन अगर आप भी GitHub की तरह एक दूरस्थ रेपो को यह दर्पण पुश करने के लिए चाहते हैं, मैंने पाया [इस लिंक] (https://help.github.com/articles/duplicating-a-repository#mirroring-a-repository) आसान। –