Ошибка при попытке обновить менеджер пакетов brew - PullRequest
47 голосов
/ 04 августа 2011

Я пытался обновить brew:

sudo brew update

Но я получил эту ошибку:

ошибка: ваши локальные изменения в следующих файлах будут перезаписаны слиянием:

Список большого количества файлов

Ошибка: не удалось выполнить git pull http://github.com/mxcl/homebrew.git master

Есть идеи, что не так?

Ответы [ 6 ]

78 голосов
/ 07 августа 2011

Была ошибка в Homebrew , которая была исправлена ​​всего несколько дней назад. Чтобы исправить ошибку, вы можете запустить git reset --hard FETCH_HEAD внутри вашей установки Homebrew. Так как это не исправит файлы, которые уже видятся как измененные, вы также можете запустить git checkout Library, чтобы заменить вашу покупку последними файлами. (Это стирает все изменения, поэтому примите соответствующие меры с любым, что вы сделали.)

34 голосов
/ 18 октября 2014

Принятый ответ правильный, но неполный.Если вы получаете сообщение об ошибке

: следующие файлы неотслеживаемого рабочего дерева будут перезаписаны слиянием:

Затем перейдите на свой терминал и запустите этикоманды

cd /usr/local

Затем

git reset --hard FETCH_HEAD

Затем

git checkout Library

Это должно привести все в порядок.Затем запустите

brew update
15 голосов
/ 27 марта 2013

Позвольте мне добавить: cd /usr/local/git а затем запустить git reset --hard FETCH_HEAD

11 голосов
/ 26 декабря 2014

зайдите в свой терминал и выполните эти команды

cd /usr/local

sudo git reset --hard FETCH_HEAD

sudo git checkout Library
10 голосов
/ 11 ноября 2015

Для тех из вас, кто использует OS X El Capitan, вашей проблемой может быть защита целостности системы.

Если /usr/local уже существует, выполните в терминале следующее:

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

Если /usr/local не существует:

Сначала попробуйте создать /usr/local обычным способом:

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

Если вы видите проблемы с разрешениями, попробуйте:

  1. Перезагрузитесь в режиме восстановления (удерживайте Cmd + R при загрузке) и получите доступ к терминалу.
  2. В этом терминале работает: csrutil disable
  3. Перезагрузитесь обратно в OS X
  4. Откройте ваше приложение Terminal и выполните строку чуть выше
  5. Перезагрузитесь обратно в режим восстановления и снова получите доступ к Терминалу.
  6. В этом терминале выполнить: csrutil enable
  7. Перезагрузитесь в OS X, и вы сможете написать в / usr / local и установить Homebrew.
5 голосов
/ 16 ноября 2012

По какой-то причине (или, по крайней мере, никому я не пойму) репозиторий в /usr/local (который является установкой brew!) Потерял свой удаленный репозиторий. Таким образом, ни 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
...