2010-02-06 5 views
6

मुझे एक नंगे रेपो में बैकअप प्रतिलिपि बनाने के लिए git push --mirror के साथ बड़ी सफलता मिली है। लेकिन एसओ और अन्य जगहों पर खोज के बाद, मुझे सभी शाखाओं के साथ स्थानीय रूप से चीज़ को क्लोन करने का कोई तरीका नहीं मिल रहा है। मैं git clone का उपयोग नहीं करना चाहता क्योंकि मैं नहीं चाहता कि मेरा स्थानीय रेपो नंगे रेपो के बारे में जान सके। अगर मैं git pull का उपयोग करता हूं तो यह केवल HEAD शाखा को नीचे लाता है।'गिट पुश --mirror` के विपरीत? मैं अपना रेपो वापस कैसे प्राप्त करूं?

अनुमान:

git pull /data/Dropbox/backup/that_stuff.git * 

, कहीं मुझे हो जाता है निश्चित रूप से।

मैं सभी शाखाओं के साथ फिर से पूरे रेपो कैसे प्राप्त करूं? मुझे एहसास है कि मैं शायद मेरी .git निर्देशिका में नंगे रेपो की प्रतिलिपि बना सकता हूं, लेकिन यह एक बुरा विचार की तरह लगता है।

+0

तो मुझे लगता है कि 2 सप्ताह पहले से 'गिट बंडल' आपकी पसंद के लिए नहीं है? (http://stackoverflow.com/questions/2129214/backup-a-local-git-repository/2129286#2129286) – VonC

+1

@VonC इसके लिए बहुत बहुत धन्यवाद। यद्यपि आपने विशेषज्ञ से सवाल का जवाब दिया है, लेकिन यह पता चला है कि ड्रॉपबॉक्स में जीआईटी बंडल में बैकअप के लिए यह थोड़ा सा समझ नहीं आता है। यह बहुत अधिक यातायात (सर्वर पर) जोड़ता है और इसका कोई फायदा नहीं होता है। मिरर भी तेज़ तरीका है। अब अगर मैं सिर्फ एक आखिरी समस्या का समाधान कर सकता हूं :) –

+0

बस मेरा उत्तर सही ''*' 'के साथ पूरा कर रहा था जिसे आप ढूंढ रहे थे? – VonC

उत्तर

2

git fetchgit pull

के बजाय बाद से git pull वहाँ एक शाखा को लाने और एक स्थानीय शाखा को मर्ज करने के है की कोशिश करो, यह एक स्थानीय शाखाओं को सभी दूरस्थ शाखाओं मर्ज करने का प्रयास भावना की बहुत नहीं होगा।

$ git fetch a-repo_url 

उपरोक्त आदेश स्थानीय refs/remotes/remoteRpo/ नाम स्थान के लिए दूरस्थ refs/heads/ नाम स्थान और उन्हें स्टोर से प्रतियां सभी शाखाओं, जब तक branch.<name>.fetch विकल्प के लिए एक गैर-डिफ़ॉल्ट refspec निर्दिष्ट करने के लिए प्रयोग किया जाता है।
प्रयास करें:

$ git fetch a-repo-url +refs/heads/*:refs/heads/* 

सभी शाखाओं के लिए सभी सिर प्राप्त करने में कठिनाई के लिए मजबूर कर सकता है।
यह SO question देखें।


ओपी yar रिपोर्ट:

git pull /data/Dropbox/backup/mjdj.git/ +refs/heads/*:refs/heads/* 

काम करता है।

+0

कोशिश की। जीआईटी '* शाखा हेड -> FETCH_HEAD ' का जवाब देता है ... तो यह सिर्फ वह हो जाता है। –

+0

ने तारों के साथ आखिरी बार कोशिश की ... घातक: मौजूदा शाखा में लाने से इंकार कर दिया/गैर-नंगे भंडार के मास्टर/मास्टर –

+0

@yar: शायद इसे एक दूरस्थ संदर्भ की आवश्यकता है (http://www.kernel.org/ पब/सॉफ्टवेयर/एसएमएम/गिट/डॉक्स/गिट-रिमोट.html), लेकिन इसका मतलब यह होगा कि "अपने स्थानीय रेपो को नंगे रेपो के बारे में जानने के लिए", जो आप चाहते हैं वह नहीं है। – VonC

1

वहाँ भी है (अब?) गिट क्लोन --mirror। लेकिन आदमी कहते हैं:

--mirror 
     Set up a mirror of the remote repository. This implies --bare. 

https://git.wiki.kernel.org/index.php/GitFaq#How_do_I_clone_a_repository_with_all_remotely_tracked_branches.3F वर्णन करता है कि गैर-नंगे में नंगे रेपो चालू करने के लिए।

-1

आप इसे git-copy के साथ प्राप्त कर सकते हैं।

git copy /data/Dropbox/backup/that_stuff.git that_stuff.git 
संबंधित मुद्दे