2010-02-12 3 views
6

पर बुरा प्रतिबद्धता ठीक है, लगभग 700 काम पहले (> 30 दिन) मैंने गलती से तीसरेपार्टी/मैपर/सॉन्गबर्ड_1.2.0-1146_विंडोज़-आई 686-एमएसवीसी 8.एक्सई (आईट्यून्स प्रकार डाउनलोड) को अपने स्थानीय गिट भंडार में ध्यान दिए बिना बचाया, जिसे रिमोट होस्टेड गिट रिपोजिटरी में भी धकेल दिया गया था, मैंने देखा कि दूसरे दिन रेपो 200 एमबी से अधिक था, जबकि मुझे 20 एमबी की उम्मीद थी।गिट

मैं निर्देश का पालन किया है: http://github.com/guides/completely-remove-a-file-from-all-revisions

साथ ही Git जीसी --aggressive --prune चल रहा है, लेकिन स्थानीय निर्देशिका 200MB से अधिक बनी हुई है। रिमोट रेपो को सॉर्ट करने से पहले मुझे अपने स्थानीय को सॉर्ट करने की ज़रूरत है, क्या मेरे मामले के बारे में कुछ खास है (यानी भारी फाइल, लंबे समय पहले प्रतिबद्ध)। मैं पूरी तरह से इस फ़ाइल को कैसे हटा सकता हूं और निर्देशिका को सही आकार में कैसे ला सकता हूं?

माइग्रेशन से बचने के लिए नोट: मुझे लगता है कि यह स्टैक ओवरफ्लो के लिए अधिक उपयुक्त है क्योंकि गिट मुख्य रूप से स्थानीय डेवलपर्स टूल है, समुदाय समर्थित है और किसी भी मुख्यधारा के डिस्ट्रोज़ या सिसाडमिन की अपेक्षा का हिस्सा नहीं है, यानी क्षणों को देव को पता है गिट के व्यवस्थापक सर्वश्रेष्ठ।

उत्तर

3

मैं "git: shrinking Subversion import."

में एक ऐसी ही समस्या के बारे में लिखा git filter-branch manpage भंडार filter-branch चल सिफारिश की है कि सिकुड़ते और फिर cruft के पीछे छोड़ने के लिए क्लोनिंग के लिए एक चेकलिस्ट है।

एक फाइल सिस्टम पथ के साथ क्लोनिंग बनाता hardlinks, तो एक URL का उपयोग:

$ git clone file:///home/gbacon/src/dBTools.git 

यहां तक ​​कि ऐसा करने के बाद, कुछ बड़े अनाम धब्बे क्लोन बच गया था। रिफ्लॉग को उत्पादित करने के सुझाव के लिए freenode पर #git के लिए धन्यवाद:

$ git reflog expire --verbose --expire=0 --all 
$ git gc --prune=0