मेरी समस्या का सारांश: बिटबकेट पर मेरे निजी भंडारों में से एक अचानक आकार में दोगुनी से अधिक हो गया जब मैंने कुछ सौ बाइट्स को दो मौजूदा फाइलों में जोड़ा। रेपो अब 2 जीबी से अधिक है, जिसने बिटबकेट को इसे केवल पढ़ने के लिए मोड में डाल दिया है। चूंकि यह केवल-पढ़ने योग्य मोड में है, इसलिए मैं उन परिवर्तनों को धक्का नहीं दे सकता जो रेपो आकार को कम कर देंगे। (22 पकड़ो।)बिटबकेट पर गिट रेपो आकार को कैसे कम करें?
विवरण: मेरी कंपनी ने हाल ही में बिटबकेट पर गिट रिपॉजिटरीज़ की मेजबानी शुरू कर दी है। मेरे द्वारा प्रभारी भंडारों में से एक का आकार लगभग 973 एमबी था, जो असंगत रूप से 1 जीबी मुलायम सीमा के करीब था। रेपो आकार को कम करने के लिए, मैंने बिटबकेट प्रलेखन आलेख Split a repository in two में दिए गए निर्देशों का पालन किया और 450 एमबी के दस्तावेज और ऑनलाइन सहायता फ़ाइलों को अपने निजी रेपो में स्थानांतरित कर दिया। इसके बाद मैंने बिटबकेट दस्तावेज लेख Reduce repository size और Maintaining a git repository में निर्देशों का पालन किया, विशेष रूप से:
git count-objects -vH
ने मुझे 973 एमबी का आकार पैक दिखाया।
मैं दस्तावेज़ निर्देशिका को हटाने के लिए git filter-branch --index-filter 'git rm --cached --ignore-unmatch doc' HEAD
चला गया (जो सामग्री मैं नए रेपो में ले जाया गया था)।
git for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git update-ref -d
git reflog expire --expire=now --all
git gc --prune=now
git count-objects -vH
तो मुझे 881.1 MiB के आकार-पैक से पता चला है और du -sh .git/objects
882M लौटे:
मैं संदर्भ समय सीमा समाप्त हो और छँटाई करने के लिए निम्न कमांड भाग गया। मैं निराश है कि 450MB पर जाने 90MB की तुलना में कम से रेपो आकार को कम किया गया था, लेकिन फिर भी Bitbucket में परिवर्तन धक्का दिया:
git push --all --force
git push --tags --force
रेपो की Bitbucket प्रति के लिए सेटिंग पृष्ठ 973MB के आकार को दिखाने के लिए जारी रखा। मैंने लॉग आउट किया, ब्राउज़र को रीफ्रेश किया, वापस लॉग इन किया, लेकिन इससे मदद नहीं मिली - रेपो आकार 973 एमबी पर रहा।
आज सुबह (ऊपर वर्णित परिवर्तनों के तीन दिन बाद) मैंने दो मौजूदा फाइलों में कुछ मामूली परिवर्धन किए जो फाइलों के आकार को 1KB से कम करके बढ़ाए, और उन्हें मेरे स्थानीय रेपो में आमंत्रित किया, फिर बिट्टबकेट में बदलाव को धक्का दिया। कुछ मिनट बाद मैंने रिपो के लिए बिटबकेट पेज पर एक नज़र डाली और मुझे एक लाल चेतावनी बैनर को सूचित किया कि "यह रेपो 2 जीबी सीमा से अधिक है और केवल पढ़ने के लिए मोड में है।" सेटिंग पेज अब कहता है कि रेपो का आकार 2.3 जीबी है।
बिटबकेट के अनुसार, पिछले तीन दिनों में रिमोट रेपो पर होने वाली कुछ सौ बाइट्स की दो फाइलों में जोड़ा गया एकमात्र गतिविधि निश्चित रूप से एकमात्र गतिविधि थी। हो सकता है कि पुश आकार में दोगुनी से अधिक रेपो का कारण नहीं हो सकता है, लेकिन दोनों घटनाएं समय पर निकटता से संबंधित थीं।
git reflog show
कुछ भी नहीं देता है।
एक वैकल्पिक प्रतिलिपि में एक नई प्रतिलिपि क्लोन करना, फिर गिट गिनती-वस्तुओं को चलाने से मुझे 881.2 9 एमआईबी का आकार पैक मिलता है।
स्थानीय भंडार CentOS 6.5 सिस्टम पर है। गिट संस्करण 1.8.5.3 है।
प्रश्न
- क्यों रेपो से बाहर फ़ाइलों के 450MB चलती केवल 90MB द्वारा अपने स्थानीय रेपो के आकार को कम किया था?
- बिडबकेट पर रिमोट रेपो में भी मामूली कमी क्यों नहीं पहुंची?
- पृथ्वी पर रिमोट रेपो आकार 973 एमबी से 2.3 जीबी तक कैसे चला गया?
- मैं इसे कैसे ठीक करूं? मैं --फोर्स ध्वज के साथ भी रिमोट रेपो को धक्का नहीं दे सकता। कोई भी धक्का मुझे त्रुटि संदेश प्राप्त करता है "conq: भंडार केवल पढ़ने के लिए मोड (2 जीबी आकार सीमा से अधिक) में है। घातक: रिमोट रिपोजिटरी से नहीं पढ़ा जा सका।"
ऐसा कुछ लगता है जिसे आपको बिटबकेट के समर्थन से पूछना चाहिए: -/ –
@dgvid वास्तव में एक ही समस्या में चल रहा है (कुछ किलोबाइट्स के आकार के साथ एक फ़ाइल और रेपो गुब्बारे के आकार के साथ एक फ़ाइल जोड़ा) - मुझे बताएं कि आपको क्या मिल रहा है। –
@ फिलब मेरा जवाब देखें। निचली पंक्ति: अज्ञात। संपर्क समर्थन के लिए – dgvid