2010-05-28 16 views
10

मेरी .git फ़ाइल 22 9 एमबी तक बढ़ी है और मुझे आश्चर्य है कि आकार को काटने का सबसे अच्छा तरीका क्या है। मैं गिट जीसी के बारे में जानता हूं और इसे उचित मात्रा में इस्तेमाल कर रहा हूं। मुझे पूरी तरह से यकीन नहीं है कि गिट कैसे काम करता है, लेकिन मुझे पता है कि वहां पैक की गई जानकारी है जिसे अब मुझे आवश्यकता नहीं है। जैसे, मुझे पता है कि अब मुझे सहेजी गई पहली पांच शाखाओं की आवश्यकता नहीं है। क्या वास्तव में पुरानी शाखाएं पूरी तरह से मिटाने या ऐसा करने या ऐसा कुछ करने का कोई तरीका है?प्रबंधन। फ़ाइल फ़ाइल आकार

उत्तर

14

साथ एकत्रित आप अपने (पहुंच योग्य) को बनाए रखने के लिए प्रतिबद्ध इतिहास है, तो, समय सीमा समाप्त हो repack चाहते हैं छँटाई करना चाहते हैं, और कचरा एकत्रित करते हैं:

git reflog expire --expire=0 --all 
git repack -ad 
git prune 
git gc 

यह कम से कम आकार के होने चाहिए आप अपने रेपो प्राप्त कर सकते हैं और अपने प्रतिबद्ध इतिहास रहते हैं।

यदि नहीं, तो आप प्रारंभिक प्रतिबद्धता के रूप में रेपो की वर्तमान स्थिति के साथ फिर से शुरू करना चाहते हैं या नहीं, तो पीटर टिलमैन का दृष्टिकोण यह करेगा।

+0

यह एक अच्छा दृष्टिकोण की तरह दिखता है, धन्यवाद! – DavidP6

+1

'git gc' स्वचालित रूप से 'git prune' चलाता है, जैसा कि इस दस्तावेज़ पृष्ठ में उल्लिखित है, उदाहरण के लिए: https://www.kernel.org/pub/software/scm/git/docs/git-prune.html – kontur

1

सबसे आसान एक नए स्थान पर एक

git clone --depth 1 your_old_repo 

क्या करना होगा और फिर इसे वापस स्वैप जगह में।

यह भी देखना git faq

+0

दुर्भाग्य से क्लोन क्लोन की कार्यक्षमता सीमित है। –

1

मैं कचरा का एक सा, git gc

+0

'--prune = ' विकल्प के साथ, संभवतः। – Cascabel

2

आपके पास "Reduce git repository size" में कुछ तकनीकें हैं, लेकिन मैं git gc alone can increase the size of the repo से भी इसमें उल्लेख करता हूं!

तो कुछ फिल्टर शाखा (भी that question में संदर्भित), की जरूरत हो सकता है अगर कोई भी सक्रिय रूप से अपने रेपो से खींच रहा है।

एक कारक जो तेजी से गिट रेपो के आकार में वृद्धि करता है, वह बहुत अधिक बाइनरी का संस्करण है। यह Git limits में से एक है, इसलिए करने का प्रयास करें: अपने स्वयं के Git रेपो में

  • संस्करण इतनी बड़ी वस्तु, submodules
  • या उन्हें संस्करण प्रसव के लिए बने एक बाहरी भंडार, एक Maven भंडार की तरह में (यानी के रूप में संदर्भित " गिट रेपो में नहीं ")
संबंधित मुद्दे