2011-08-03 9 views
47

मैं काढ़ा अद्यतन करने के लिए करने की कोशिश की अपडेट करते समय:त्रुटि काढ़ा पैकेज प्रबंधक

sudo brew update 

लेकिन मैं यह त्रुटि आई:

error: Your local changes to the following files would be overwritten by merge:

Listing a lot of files

Error: Failed while executing git pull http://github.com/mxcl/homebrew.git master

किसी भी विचार क्या गलत हो रहा है?

+2

होमब्रू 'सुडो' का उपयोग न करने की सिफारिश करता है, इसलिए आप इसके बिना 'ब्रू अपडेट' चलाने में सक्षम होना चाहिए। – Clay

+0

कुछ ओएस एक्स एल कैपिटन उपयोगकर्ता इस समस्या का एक अलग कारण से अनुभव करेंगे। [नीचे मेरा जवाब] देखें (http://stackoverflow.com/a/33640543/756329)। –

+0

होमब्रू –

उत्तर

78

एक bug in Homebrew था जो कुछ दिन पहले तय किया गया था। बग को ठीक करने के लिए आप अपने होमब्रू स्थापना के अंदर git reset --hard FETCH_HEAD चला सकते हैं। चूंकि इससे पहले से संशोधित फ़ाइलों को ठीक नहीं किया जाएगा, इसलिए आप नवीनतम फाइलों के साथ अपने चेकआउट को प्रतिस्थापित करने के लिए git checkout Library भी चला सकते हैं। (यह सभी संपादनों को मिटा देता है इसलिए आपके द्वारा किए गए किसी भी के साथ उचित उपाय करें।)

+3

के लिए 'सुडो' का उपयोग न करें मैं गिट रीसेट चलाता हूं -/usr/local में FETCH_HEAD चलाएं लेकिन मुझे मिला: घातक: संदिग्ध तर्क 'FETCH_HEAD': संशोधन और फ़ाइल नाम – Chiron

+0

दोनों को आपके गिट को अपडेट करने की आवश्यकता हो सकती है। – Turadg

+2

इसका कारण यह है कि मैं एक बार सूडो के साथ ब्रू चला गया। इसने गलत अनुमतियों (रूट के स्वामित्व वाले) के साथ कुछ फाइलें बनाईं। एक बार जब मैंने फाइलों को चैन किया, तो उस गिट रीसेट को चलाया, चीजें ठीक थीं। धन्यवाद! –

5

/usr/local (जो ब्रू इंस्टॉल है!) में भंडार को किसी भी कारण से (या कम से कम कोई भी मुझे समझ में नहीं आता), इसके रिमोट रिपोजिटरी को खो दिया । तो, न तो git reset और न ही git pull और निश्चित रूप से brew update काम करेगा।

आप कैसे जानते हैं कि हुआ? /usr/local/.git/config चेक वहाँ निम्नलिखित की तरह कुछ लाइनें हैं या नहीं:

[remote "origin"] 
url = http://github.com/mxcl/homebrew.git 
fetch = +refs/heads/*:refs/remotes/origin/* 

रहे हैं तो नहीं इस प्रकार है:

cd /usr/local 
git remote add origin http://github.com/mxcl/homebrew.git 
git pull origin master 
+0

यह मेरे साथ भी हुआ! धन्यवाद @Achim – stringy05

15

मुझे जोड़ें: cd /usr/local/git और फिर चलाने git reset --hard FETCH_HEAD

+0

बहुत बढ़िया !! यह मेरे लिए काम किया! :) – uday

34

स्वीकार किए जाते हैं जवाब सही है लेकिन अपूर्ण। आप

त्रुटि के त्रुटि प्राप्त होती है: निम्नलिखित ट्रैक न किए गए काम कर पेड़ फ़ाइलें मर्ज द्वारा ओवरराइट किया जाएगा:

फिर अपने टर्मिनल के लिए जाने के लिए और इन आदेशों

cd /usr/local 

फिर

चलाने
git reset --hard FETCH_HEAD 

फिर

git checkout Library 

यह सबकुछ क्रम में प्राप्त करना चाहिए। तब चलाने

brew update 
11

अपने टर्मिनल के लिए जाने के लिए और इन आदेशों

cd /usr/local 

sudo git reset --hard FETCH_HEAD 

sudo git checkout Library 
10

आप में से जो ओएस एक्स एल कैप्टन का उपयोग कर के लिए चलाने के लिए, आपकी समस्या को सिस्टम वफ़ादारी संरक्षण हो सकता है। फिक्स को here दस्तावेज किया गया है।सामान्य तरीके से

पहले, /usr/local बनाने का प्रयास करें:

sudo mkdir /usr/local && sudo chflags norestricted /usr/local && sudo chown -R $(whoami):admin /usr/local 

हैं /usr/local पहले से मौजूद है

हैं, तो टर्मिनल में निम्नलिखित चलाएँ:

sudo chown -R $(whoami):admin /usr/local 

हैं /usr/local मौजूद नहीं है आपको इसके बजाय अनुमति समस्याएं आज़माएं:

  1. रिकवरी मोड में रीबूट करें (बूट पर सीएमडी + आर दबाएं) & टर्मिनल तक पहुंचें।
  2. कि टर्मिनल समय में: csrutil disable
  3. रीबूट ओएस एक्स में वापस
  4. अपने टर्मिनल एप्लिकेशन खोलें और फिर
  5. बस ऊपर रीबूट रिकवरी मोड में वापस & पहुँच टर्मिनल से लाइन पर अमल।
  6. कि टर्मिनल में निष्पादित करें: csrutil enable
  7. रीबूट ओएस एक्स & में वापस आप/usr/स्थानीय & लिखने के लिए Homebrew स्थापित कर सकेंगे।