2012-01-05 18 views
24

आपत्ति पार्स नहीं कर सके जब बंडल प्रयास कर स्थापित मैं निम्न त्रुटिरेल 3/Git/Bundler घातक

Fatal could not parse object '8c11dd........ 
Git error: command git reset --hard '8c11dd 

If this error persists you can try removing the cache directory. 

कोई सफलता के साथ कैश निर्देशिका को हटा दिया है मिल जाए, तो किसी को भी करने से पहले इस त्रुटि को देखा है?

विंडोज 7 64-बिट

+0

क्या यह सिंगल बोली टाइपो है? यह निश्चित रूप से एक समस्या का कारण होगा। – d11wtq

+0

स्पष्टीकरण के लिए, उनमें से कुछ Gemfile एक गिट रेफ 8c11dd को इंगित करता है, लेकिन वहां एक नकली एकल उद्धरण है। – d11wtq

+0

क्षमा करें, यह स्पष्ट करने के लिए कि '8c11dd ........' यह एक लंबे समय हैश के बाद एक समापन उद्धरण –

उत्तर

5

कुछ भंडार को क्या हुआ है चाहिए। मेरे मामले में इसे हटा दिया/स्थानांतरित कर दिया गया था। तो मैंने अभी git यूआरएल बदल दिया है।

यदि आपका :git => गीथब को इंगित कर रहा है, तो उस जिथब प्रोजेक्ट के पृष्ठ पर जाने का अच्छा विचार हो सकता है।

31

उसी त्रुटि में भाग गया जब मैंने सर्वर्स में रिपॉजिटरीज़ को स्थानांतरित किया। Gemfile.lock को हटाकर और bundle install चलाकर इसे हल किया गया। इसने एक अद्यतन Gemfile.lock उत्पन्न किया जो त्रुटि को हल करने में मदद करता है।

+1

इसके लिए धन्यवाद। मुझे एक ही समस्या थी और विभिन्न चीजों का एक गुच्छा कोशिश कर रहा था लेकिन यह आसान भूल जाओ। यह काम कर रहा है। – Fralcon

+4

Gemfile.lock को हटाने आमतौर पर एक बुरा विचार है। जब आप 'बंडल इंस्टॉल' चलाते हैं तो यह किसी भी अनिर्दिष्ट रत्न के नवीनतम संस्करणों को पकड़ने जा रहा है। जो कुछ सिरदर्द का कारण बन जाएगा। –

+1

टोनी के साथ सहमत हैं। जब मुझे इस त्रुटि का सामना करना पड़ा, तो यह मेरी परियोजना में 'बंडल इंस्टॉल' चलाने वाला कोई मुद्दा नहीं था। 'बंडल अपडेट ' का उपयोग करने के लिए एक बेहतर विकल्प होगा। – user553620

1

मुझे set :deploy_via, :remote_cache का उपयोग करके कैपिस्ट्रानो के साथ एक ही समस्या है जब मैंने भंडार के विभिन्न गीथब कांटा में स्विच किया है।

मेरा कैपिस्ट्रानो रेसिपी नई कांटा की ओर इशारा कर रहा था, लेकिन रिमोट सर्वर पर कैश अभी भी origin पुरानी भंडार की ओर इशारा कर रहा था, और इसलिए मुझे नए काम नहीं मिल रहे थे जो मैंने नए फोर्क पर धकेल दिया था।

दूरस्थ सर्वर से प्रत्येक पर क्रियान्वित करते हुए फिक्स्ड:

git remote set-url origin <new fork>

7

आप (साझा /) कैश की गई प्रतिलिपि को हटाने से समस्या का समाधान करना चाहिए Capistrano उपयोग कर रहे हैं।

+0

यह मेरी समस्या है! – neilmarion

+0

यह मुझे हल किया, बहुत बहुत धन्यवाद! –

0

मेरे मामले में गिट शाखा जो मैं एक मणि के लिए उपयोग कर रहा था उसे मास्टर में विलय कर दिया गया था और शाखा हटा दी गई थी। को हटाकर Gemfile को अपडेट कर रहा है, और bundle को फिर से चलाना मेरे लिए हल हो गया है।

6

यहां पर पोस्टर में से कई पोस्टर्स सही हैं कि इसमें Gemfile के साथ सबसे अधिक संभावना है। एक भंडार चलने या स्थानांतरित करने के कारण सिंक से बाहर होना, लेकिन दूसरों की तरह यह इंगित करना, इसे हटाना एक बुद्धिमान नहीं है फेसला। Gemfile.lock का निरीक्षण करें और प्रश्न में रेपो के लिए एक जीआईटी प्रविष्टि खोजें। जांच करने की महत्वपूर्ण बात यह है कि revision मेटाडेटा इसे इंगित करता है ... यह संभवतः खराब संशोधन हैश की ओर इशारा करता है जो अब मौजूद नहीं है।

मेरी सलाह है कि आप उस शाखा को इंगित करने के लिए इसे मैन्युअल रूप से संपादित करें जिसे आप वास्तविक रेपो के लॉगफाइल के साथ क्रॉस-रेफरेंसिंग द्वारा खींचना चाहते हैं (ताकि आप सुनिश्चित कर सकें कि यह वास्तव में आपके वास्तविक जेमफ़ाइल में से एक है) :

GIT 
    remote: https://github.com/YourUserOrOrganization/your-gem-repo.git 
    revision: <UPDATE AND FIX ME!> 
    specs: 
    some-random-dep1 (2.4.3) 
     some-random-dep2 (>= 1.7.9) 
     some-random-dep3 (>= 1.6.7) 
0

आप 'बंडल अपडेट' के साथ '- स्रोत' ध्वज का उपयोग कर सकते हैं। तो यह हो जाएगा:

bundle update --source your_gem

0

यह समस्या है जब वहाँ की तरह परिवर्तन हुए हैं एक Git रेपो जो एक Gemfile में संदर्भित है करने के लिए बल-धक्का होता है।

समाधान यह है कि जेमफाइल में मणि लाइन, बंडल चलाएं, इसे असम्बद्ध करें और दोबारा बंडल करें। फिर Gemfile.lock एक मान्य गिट संशोधन का संदर्भ देगा।

मुझे लगता है कि यह बहुत मदद मिलेगी: bundle update my_gem_name

0

मैं वर्तमान में एक रत्न निर्माण कर रहा हूँ और समस्या अन्य उत्तर से थोड़ा अलग था।

मैं Gemfile में एक विशिष्ट संस्करण को लक्षित करता हूं लेकिन विकास के उद्देश्य के लिए मैंने स्थानीय संस्करण प्राप्त करने के लिए bundle config बदल दिया। मैंने अपनी स्थानीय मशीन पर एक अलग संस्करण स्थापित किया है जो Gemfile.lock को specs में कुछ और लक्षित करता है।

इस फ़ाइल Git और सर्वर के माध्यम से सर्वर के माध्यम से भेजा जाता है स्पष्ट रूप से मणि के इस तरह के संस्करण का उपयोग नहीं कर सकते हैं ...

इसे ठीक करने के लिए, बस उसी के अनुसार एक करने के लिए अपने मणि में एक VERSION निर्दिष्ट करें कि आप ' फिर से विकास/धक्का दे रहा है और यह ठीक होना चाहिए।

gem "my-gem", git: "https://github.com/Loschcode/my-gem.git", branch: "master", tag: "v0.2.2" 
संबंधित मुद्दे