मैं git रेपो का बैकअप कैसे ले सकता हूं?


26

मैं एसवीएन से गिट में स्विच करने की योजना बना रहा हूं। Svn के साथ मैं सिर्फ अपने रेपो फोल्डर को कॉपी करता हूं जब मैं इसे वापस करना चाहता हूं। हालाँकि git में एक नहीं है तो मैं क्या करूँ?

क्या मुझे अपने प्रोजेक्ट से खींचकर एक अलग ड्राइव पर एक क्लोन बनाना चाहिए और अपडेट करना चाहिए? तब मैं इस फ़ोल्डर को जला / संग्रह कर सकता हूं और इसमें सारा इतिहास होगा?

यह शायद स्पष्ट है, लेकिन जब यह बैकअप की बात आती है तो मैं यह सुनिश्चित करना चाहता हूं। मैं अभी भी दिखावा करता हूं कि एक जड़ भंडार है।


इसे भी देखें: बैकअप एक GitHub रिपॉजिटरी (गैर- GitHub git प्रोजेक्ट्स के लिए उत्तर भी काम करते हैं,)
मार्टिन Thoma

जवाबों:


14

आप बस इसे कॉपी करें। git एक रेपो फोल्डर का उपयोग करता है , यह केवल सामान्य निर्देशिका दृश्य से छिपा हुआ है। (फ़ोल्डर का नाम .git* निक्स सिस्टम पर रखा गया है, इसलिए यह केवल तभी दिखाई देता है जब आप इसका उपयोग करते हैं ls -a। मेरा मानना ​​है कि यह विंडोज़ में "छिपी हुई" विशेषता को सेट करता है, लेकिन मैंने विंडोज वातावरण में कभी भी गिट का उपयोग नहीं किया है, इसलिए मैं इसके बारे में निश्चित नहीं हूं यह कैसे संभाला जाता है।)


मेरे ट्रंक में कुछ परियोजना फाइलों को नजरअंदाज करता है। तो मैं सचमुच इसे कॉपी कर सकता हूं? (मैं मानूंगा कि यह उसी तरह काम करता है जैसे कि linux)। तो क्या क्लोन सिर्फ एक फाइल कॉपी है? मुझे लगता है कि अगर मुझे लगता है मैं फ़ोल्डर में है सभी डेटा खींचो। मैंने जाँच की है कि .गित फाइलें हैं, लेकिन मेरे svn ट्रंक में .svn फाइलें हैं और यह देखने के लिए कि क्या इतिहास डेटा वहां था, यह

2
विंडोज पर, यह अभी भी .git"हिडन" विशेषता के साथ है।
ग्रिटिटी डेस

1
@ acidzombie24: .gitनिर्देशिका में इतिहास सहित संपूर्ण भंडार राज्य शामिल है। (यही कारण है कि "वितरित" हिस्सा है।)
grawity

5
@ ग्रेविटी: इसका अधिक "सेल्फकॉन्स्टेड" हिस्सा है, वितरित भाग तब होता है जब आप एक्सचेंजों को स्व-प्राप्त रिपॉजिटरी के बीच अंतर करते हैं :)
अकीरा

19

अकीरा जवाब सही है, लेकिन आप नंगे रेपो बनाने के लिए - मिरर जोड़ सकते हैं (थोड़े छोटे बैकअप के लिए)।

हम निम्नलिखित रणनीति का उपयोग करते हैं (लगभग बिल्कुल):

git clone --mirror yourrepo backup.repo
tar cjf backup.repo.tar.bz2 backup.repo
scp backup.tar.bz2 ssh://somewhereelse

फिर, अपने बैकअप से पुनर्प्राप्त करने के लिए:

tar xjf backup.repo.tar.bz2
git clone backup.repo yourrepo

2
यह सहायक है, धन्यवाद। वर्किंग ट्री को पुनर्स्थापित करने के लिए मैं बैक-अप रेपो का उपयोग कैसे करूं?
जोनाथन डे

10

मैं git बंडल का उपयोग कर रहा हूं । प्रतिलिपि फ़ाइल (एक बैकअप फ़ाइल) निष्पादित करने के लिए:

git bundle create backup.bundle master

शाखा मास्टर के साथ रिपॉजिटरी को पुनर्स्थापित करने के लिए बस backup.bundle फ़ाइल को क्लोन करें:

git clone backup.bundle -b master my-project

2

कहीं और एक नया क्लोन बनाएँ:

 % git clone yourepo somewhereelse

btw, git के पास एक रेपो फोल्डर है, आप इसे उपनिर्देशिका के नीचे अपनी वर्किंग कॉपी में पा सकते हैं .git। हर काम करने वाली कॉपी में "रेपो फोल्डर" होता है।


10
मुझे नहीं लगता कि एक बैकअप के रूप में एक क्लोन स्वीकार्य है, क्योंकि यह एक सटीक प्रतिलिपि नहीं है। क्लोन किए गए रेपो की कम से कम दूरस्थ शाखाएँ क्लोन में गायब हो जाएंगी, और क्लोन किए गए रेपो की शाखाएँ क्लोन की दूरस्थ शाखाओं के रूप में दिखाई देंगी।
Sleske
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.