Ошибка обновления Homebrew: "Пожалуйста, сделайте свои изменения или запишите их, прежде чем сможете объединиться"

Я запускаю:

brew update

И я получаю сообщение об ошибке:

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

Оказывается, это хорошо известная ошибка. Фактически, он упоминается в Homebrew wiki:

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

Я выполнил эти инструкции и до сих пор вижу ту же ошибку. Что не так?

Ответ 1

Я сам смог решить проблему.

Что меня опрокинуло, "git status" не показывал этот файл.

Вместо использования общего решения:

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

Мне пришлось делать:

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

Это решило проблему.

Ответ 2

Это исправлено для меня:

fooobar.com/questions/85353/...

cd `brew --prefix`
git fetch origin
git reset --hard origin/master

Ответ 3

У меня возникла эта проблема после ручной корректировки URL-адреса в формуле numpy. Я смог исправить это позже:

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