2013-07-25 3 views
65

Ich betreibe:Homebrew Update fehlschlagen: „Bitte, Ihre Änderungen oder sie verschwinden lassen, bevor Sie zusammenführen können“

brew update 

Und ich erhalte eine Fehlermeldung:

error: Your local changes to the following files would be overwritten by merge: 
    samtools.rb 
Please, commit your changes or stash them before you can merge. 
Aborting 

Es stellt sich heraus, das ist ein bekannter Fehler. In der Tat ist es auf dem Homebrew wiki erwähnt:

After running brew update, you receive a git error warning about untracked files or local changes that would be overwritten by a checkout or merge, followed by a list of files inside your Homebrew installation. 

This is caused by an old bug in in the update code that has long since been fixed. However, the nature of the bug requires that you do the following: 

cd $(brew --repository) 
git reset --hard FETCH_HEAD 

If brew doctor still complains about uncommitted modifications, also run this command: 

cd $(brew --repository)/Library 
git clean -fd 

ich diese Anweisungen befolgt und bin immer noch den gleichen Fehler zu sehen. Was ist falsch?

Antwort

104

Ich konnte das Problem selbst beheben.

Was mich auskippte läuft "git status" zeigte diese Datei nicht.

Statt die gemeinsame Lösung der Verwendung:

cd $(brew --repository) 
git reset --hard FETCH_HEAD 

ich tun musste:

cd [directory of the file in question] 
git reset --hard FETCH_HEAD 

dass das Problem gelöst.

+0

Vielen Dank! es hat einen meiner git-konflikte behoben. Was genau setzt git zurück --hard FETCH_HEAD? –

+0

Als ich dieses Problem hatte, musste ich die beleidigende Datei rm, die in/usr/local/Formula/Library war und dann "git reset --hard FETCH_HEAD" nach diesem Brew-Update arbeitete – petrocket

+0

Das tat es für mich, vielen Dank zum Teilen! –

2

Ich hatte dieses Problem nach dem manuell eine URL in der numpy Formel zu korrigieren. Ich konnte das später korrigieren:

cd /usr/local/Library/Taps/homebrew/homebrew-python 
git checkout -- numpy.rb 
brew update