2011-10-07 17 views
7

मेरे पास भंडार में बड़ी मात्रा में फ़ाइल है। इस प्रकार रिट परिवर्तनों के दौरान स्मृति अपवाद से बाहर कभी-कभी गड़बड़ हो जाती है।रिबेस के दौरान गिट क्रैश

उदा।

git checkout feature 
git rebase master 
(nasty out of memory exception) 
..... 

तो एक बार मुझे लगता है कि अपवाद मिल गया, मैं फिर से

git rebase master 

रिबेसिंग की कोशिश की और यह मुझे बताया कि शाखा feature अप टू डेट है। यह अजीब लगता है, क्योंकि रिसेज अपवाद के साथ समाप्त हुआ।

क्या ओम अपवाद से बचने का कोई तरीका है? किसी भी तरह गिट को स्मृति की छोटी मात्रा का उपयोग करने के बारे में बताएं। क्या यह अपवाद भंडार भ्रष्टाचार का कारण हो सकता है? यदि भ्रष्टाचार का कारण बनता है तो क्या git rebase master से पहले राज्य के पुनर्वास के दौरान किए गए परिवर्तनों को सुरक्षित रूप से वापस ले जाने का कोई तरीका है?

+0

अपवाद क्या कहता है? महत्वपूर्ण हो सकता है। – Chris

+0

मैं इसे पुन: पेश नहीं कर सकता। लेकिन यह निम्न की तरह है: 'ब्लब्बलाला स्मृति से बाहर, ब्लाब्लाबला, मॉलोक असफल रहा (100500 बाइट आवंटित नहीं कर सका) ' –

उत्तर

2

आप शायद इसे वीएम पर चला रहे हैं या कुछ बड़ी फाइलें संग्रहीत कर रहे हैं। फ़िल्टर शाखा बाहर बड़ी फ़ाइलों को आप स्मृति को टक्कर सकता है अगर या:/

ज्यादा नहीं किसी और जब तक मैं और अधिक जानकारी है मैं जोड़ सकते हैं ..

+1

भंडार भ्रष्टाचार के बारे में क्या? –

+0

'बड़ी फाइलें' कहने का क्या मतलब है? क्या गिट को सभी फ़ाइलों को रैम में रिपोजिटरी से परिवर्तनों को पुनर्जीवित करने की आवश्यकता है? –

+0

सुनिश्चित नहीं है। लेकिन यह कोशिश कर रहा है। इतिहास में आपके पास सबसे बड़ी फ़ाइल कितनी बड़ी है? –

0

git rebase $BASEgit reset --hard $BASE

द्वारा शुरू होता है यदि यह उसके बाद स्मृति से बाहर दुर्घटनाग्रस्त हो जाता है, तो इसका मतलब है कि आप यो के साथ छोड़े गए हैं यूआर शाखा पॉइंटर $BASE को इंगित करने के बजाय इंगित करता है कि यह पहले की ओर इशारा करता है।

कि आप क्यों कहा जा रहा है कर रहे हैं कि feature अप टू डेट है जब आप क्योंकि feature पहले से ही एक ही की ओर इशारा करते है स्मृति दुर्घटना से बाहर के बाद master के रूप में प्रतिबद्ध फिर git rebase master,।

अपनी शाखा वापस मूल करने के लिए रीसेट करने के लिए प्रतिबद्ध जहां आप पहले थे,

git reset --hard [email protected]{1}`. 

चलाने या यदि आप दुर्घटना, git reflog चलाने के बाद शाखा पर अन्य काम किया है मूल प्रतिबद्ध खोजने के लिए।

भी Undoing a git rebase


देखें के बाद आप अपनी शाखा वापस मूल करने के लिए प्रतिबद्ध है, तुम कोशिश कर सकते

git rebase -m master 

जो एक अलग रिबेस रणनीति है कि शायद कम स्मृति यदि आपके पास का उपयोग करता है की कोशिश करेंगे बड़ी बाइनरी फाइलें।

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