2012-06-21 12 views
7

में विफल रहा है जब एक दूरस्थ सर्वर से धक्का मैं त्रुटि मिलती है:Git धक्का: घातक: स्मृति से बाहर, malloc

Counting objects: 58, done. 
Compressing objects: 100% (35/35), done. 
fatal: Out of memory, malloc failed (tried to allocate 595059947 bytes) 
error: pack-objects died of signal 13 
error: failed to push some refs to '[email protected]:development'" 

मुझे लगता है कि समस्या यह है कि मैं गलती से कुछ बहुत बड़ी लॉग फाइल लागू किए गए है। लेकिन मैंने बाद में उन्हें हटा दिया (जीआईटी आरएम लॉगफाइल), लेकिन त्रुटि बनी हुई है। और वे "गिट स्थिति" में दिखाई नहीं देते हैं। मैं इससे कैसे ठीक हो सकता हूं?

+0

देखें [इस] (https://help.github.com/articles/remove-sensitive -डेटा); रेपो से डेटा शुद्ध करने और कचरा कलेक्टर का उपयोग करने के बारे में अनुभाग। – Shahbaz

+2

यदि आपने उन्हें 'गिट आरएम' के साथ हटा दिया है तो वे पुराने कामों में उपस्थित हो सकते हैं। क्या आपको अपने इतिहास को फिर से लिखने और उन्हें पूरी तरह हटाने के लिए कोई आपत्ति है? क्या आपका मतलब गलती से धक्का या गलती से किया गया है? –

+0

मेरा मतलब है कि धक्का नहीं दिया गया (मूल प्रश्न संपादित किया है)। मुझे इतिहास को फिर से लिखने के लिए आपत्तियां हैं। कुछ भी जो काम करता है। – Rune

उत्तर

3

मैं अपनी टिप्पणी से बता सकते हैं नहीं है, तो आप इतिहास को फिर से लिखने पर आपत्ति कर रहे थे, या आपत्ति नहीं की। यदि आप ऑब्जेक्ट नहीं करते हैं, तो यह आदेश आपके इतिहास की बड़ी फ़ाइलों को मिटा देगा।

चेतावनी: इस विनाशकारी और अपरिवर्तनीय है। पहले अपने भंडार का बैकअप लें।

git filter-branch --index-filter 'git rm --cached --ignore-unmatch <file>' \ 
--prune-empty --tag-name-filter cat -- --all 

आदेश अपनी शाखा के इतिहास से <file> मिट जाएगा: आप परिणाम पसंद नहीं है, तो आप बस बैकअप बहाल कर सकते हैं। आपको परेशानी के कारण प्रत्येक फ़ाइल के लिए इसे चलाएं। , 1g की तरह कुछ

git config --global pack.windowMemory 256m 

यह डेल्टा संपीड़न की प्रभावशीलता को प्रभावित करता है, ताकि आप पहले एक बड़ा आकार की कोशिश करना चाहते हो सकता है, अपने हार्डवेयर और बैंडविड्थ के आधार पर:

0

मैं यह त्रुटि है, जबकि एक Git-रेपो एक रास्पबेरी पाई पर होस्ट करने के लिए जोर दे रहा अनुभव किया। मैंने जिन फ़ाइलों को धक्का देने का प्रयास किया उनमें से एक गिट सर्वर पर उपलब्ध स्मृति (मेमोरी + स्वैप) से बड़ा है।

dd if=/dev/zero of=/media/store/swapfile bs=1024 count=655360

mkswap /media/store/swapfile

swapon /media/store/swapfile

सत्यापित करें चलाकर है कि एक नया स्वैप विभाजन जोड़ा गया है:

अस्थायी Git सर्वर पर एक नया swapfile बनाने के द्वारा इस मुद्दे को हल

swapon, cat /proc/swaps या free

(मैं इतना swapfile एक रिबूट के बाद चला जाएगा, /etc/fstab को swapfile जोड़ने के लिए नहीं चुनते हैं।)

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