2010-01-22 15 views
187

मैंने रिपो आकार को कम करने पर एक अच्छा ट्यूटोरियल ढूंढने की कोशिश की, लेकिन कोई नहीं मिला। मैं अपने रेपो आकार को कैसे कम कर सकता हूं ... यह लगभग 10 एमबी है, लेकिन बात यह है कि हेरोोकू केवल 50 एमबी की अनुमति देता है और मैं अपने ऐप को विकसित करने के करीब नहीं हूं।गिट रिपॉजिटरी आकार घटाएं

मैंने सामान्य संदिग्ध (लॉग, विक्रेता, डॉक्टर इत्यादि) को पहले से ही .gitignore में जोड़ा है। हालांकि मैंने हाल ही में जोड़ा .gitignore हाल ही में।

कोई सुझाव?

+1

मैंने अभी किया और इसे 2.2 एमबी तक लाया ... बहुत बहुत धन्यवाद! हालांकि यह हेरोोकू पर रेपो आकार को कम नहीं कर रहा था .. हम्म –

+9

--force का उपयोग करके इसे पुश करें। कोई बदलाव नहीं होने पर भी सामग्री को ओवरराइट कर दिया जाएगा (कोई नया काम नहीं, इत्यादि) –

+1

@MarcinGil - नीचे, VonC राज्यों को रिमोट सर्वर को साफ़ करने के लिए आपको सर्वर तक पहुंच की आवश्यकता है (यदि मैं इसे सही ढंग से पार्स कर रहा हूं)। – jww

उत्तर

221

git gc --aggressive प्रून प्रक्रिया को लागू करने के लिए एक तरीका है (सुनिश्चित करने के लिए: git gc --aggressive --prune=now)। रेपो को साफ करने के लिए आपके पास other commands भी है। हालांकि मत भूलना, कभी-कभी git gc अकेले increase the size of the repo कर सकते हैं!

इसका उपयोग इतिहास से हटाए जाने के लिए कुछ निर्देशिकाओं को चिह्नित करने के लिए filter-branch के बाद भी किया जा सकता है (अंतरिक्ष के आगे लाभ के साथ); here देखें। लेकिन इसका मतलब है कि कोई भी आपके सार्वजनिक रेपो से नहीं खींच रहा है। filter-branch can keep backup refs in .git/refs/original, ताकि निर्देशिका भी साफ किया जा सके।

अंत में, जैसा कि in this comment और this question बताया गया है; सफाई reflog मदद कर सकते हैं:

git reflog expire --all --expire=now 
git gc --prune=now --aggressive 

एक और भी अधिक पूरा, और संभवतः खतरनाक, समाधान to remove unused objects from a git repository

+0

किसी अन्य परिदृश्य में, http://stackoverflow.com/questions/1029969/why-is-my-git-repository-so-big – VonC

+1

स्वयं को ध्यान दें: दूरस्थ शाखाओं को न भूलें: http: // stackoverflow। com/question/11255802/delete-remove-binary-file-from-git-repository-is-still-big – VonC

+1

स्वयं को नोट करें: दूरस्थ टैग को न भूलें – saiyancoder

59

अपने उत्तर के लिए धन्यवाद है। यहां मैंने जो किया है:

git gc 
git gc --aggressive 
git prune 

ऐसा लगता था कि यह चाल है। मैंने लगभग 10.5 एमबी के साथ शुरू किया और अब 980 केबी से थोड़ा अधिक है।

+6

'prune' हमेशा 'gc' द्वारा चलाया जाता है (2 सप्ताह पहले डिफ़ॉल्ट के साथ)। – Cas

+80

यू अब तक सभी 3 रनों को चला सकता है अब तक 'git gc --aggressive --prune = now' – rahul286

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