2010-01-02 18 views
11

मेरे पास एक रेपो है जो लगभग 24 एमबी आकार में है लेकिन परियोजना में फाइलें वास्तव में लगभग 2 एमबी हैं। मैं इस धारणा के तहत था कि - डेपथ 1 के साथ एक उथले क्लोन मुझे वास्तविक फ़ाइलों के 2 एमबी (सैन्स पूरे रेपो) के करीब ले जाएगा।यह गिट उथला क्लोन मुझे अपेक्षा से बड़ा क्यों है?

जब मैं उथले क्लोन करता हूं तो नया रेपो केवल वर्तमान शाखा दिखाता है लेकिन आकार समान (24 एमबी) है और गिटक्स के साथ रेपो को देखकर मैं पूरे इतिहास को प्रारंभिक प्रतिबद्धता में देख सकता हूं।

मैं सभी इतिहास के बिना फ़ाइलों की वर्तमान स्थिति (सर्वर पर अपलोड करने के लिए) प्राप्त करने का एक तरीका चाहता हूं। क्या मैं कुछ गलत कर रहा हूं या उथले क्लोन के उद्देश्य को गलत समझ रहा हूं?

+0

आप गिट या msysgit का किस संस्करण का उपयोग कर रहे हैं? क्योंकि यह धागा (http://osdir.com/ml/git/2009-02/msg02816.html) कहता है: कोई रेपो नहीं। – VonC

+0

मैं बर्फ तेंदुए पर 1.6.5 (बाइनरी बंडल से) का उपयोग कर रहा हूं। – kjs3

+0

क्लोन स्थानीय बीटीडब्ल्यू है। – kjs3

उत्तर

20

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

git clone --depth 1 --no-hardlinks /path/to/repo.git 

, आप git archive का उपयोग करना चाहिए एक ज़िप या राल उत्पन्न करने के लिए: ऐसा तो नहीं है देखने के लिए, आप हार्ड जोड़ने निष्क्रिय कर सकते हैं अपने पेड़ का संग्रह।

+1

--no-hardlinks विकल्प कोई फर्क नहीं पड़ता लेकिन "गिट आर्काइव" सही है। धन्यवाद – kjs3

0
git clone --depth 1 repo_url 

आपको जो चाहिए वह करना चाहिए।

शायद आप repo url के बाद विकल्प डाल सकते हैं? कुछ सिस्टम पर उन्हें नजरअंदाज कर दिया जाएगा।

+0

मेरे पास यूआरएल से पहले विकल्प थे। कोई पाँसा नहीं। – kjs3

+0

आपको उत्तर पोस्ट करने का प्रयास करने से पहले शायद प्रश्न पढ़ना चाहिए। – mpowered

1

जैसा कि टिप्पणी में कहा गया है, यह अजीब है क्योंकि आम तौर पर प्रजनन नहीं (this thread देखें)। आदेश की

उदाहरण है कि काम करना चाहिए:

$ git clone --depth 1 git://github.com/rails/rails.git shallow 
Initialized empty Git repository in /home/me/shallow/.git/ 

लेकिन वैसे भी, बड़े रेपोस पर, लाभ एक उथले क्लोन के साथ प्राप्त किया seems not very impressive

4

मेरा सुझाव है कि ऐसा इसलिए है क्योंकि स्थानीय क्लोन करते समय, गिट --depth को अनदेखा करता है क्योंकि यह हार्डलिंक्स का समर्थन करता है। आप file:///home/user/path/to/repo (यानी फ़ाइल के साथ: /// उपसर्ग) के साथ स्रोत रेपो निर्दिष्ट करने के साथ अपेक्षित व्यवहार को मजबूर कर सकते हैं।

यह दस्तावेज़ों में है।

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