Подтвердить что ты не робот

Ошибка при попытке обновления диспетчера пакетов brew

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

sudo brew update

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

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

Перечисление большого количества файлов

Ошибка: сбой при выполнении git pull http://github.com/mxcl/homebrew.git мастер

Любая идея, что происходит не так?

4b9b3361

Ответ 1

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

Ответ 2

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

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

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

cd /usr/local

Тогда

git reset --hard FETCH_HEAD

Тогда

git checkout Library

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

brew update

Ответ 3

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

Ответ 4

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

cd /usr/local

sudo git reset --hard FETCH_HEAD

sudo git checkout Library

Ответ 5

Для тех из вас, кто использует 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. Откройте приложение "Терминал" и выполните строку сверху
  5. Перезагрузитесь обратно в режим восстановления и снова получите доступ к терминалу.
  6. В этом терминале выполните: csrutil enable
  7. Перезагрузитесь в OS X, и вы сможете написать в /usr/local & install Homebrew.

Ответ 6

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