47

我试图更新brew:

sudo brew update

但我得到了这个错误:

错误:您对以下文件的本地更改将被合并覆盖:

列出很多文件

错误:执行 git pull http://github.com/mxcl/homebrew.git master失败

知道出了什么问题吗?

4

6 回答 6

78

Homebrew中有一个错误,几天前才修复。要修复错误,您可以git reset --hard FETCH_HEAD在 Homebrew 安装中运行。由于这不会修复已被视为已修改的文件,因此您还可以运行git checkout Library以将结帐替换为最新文件。(这会擦除所有编辑,因此请对您所做的任何内容采取适当的措施。)

于 2011-08-06T23:30:44.110 回答
34

接受的答案是正确的,但不完整。如果您收到以下错误

错误:以下未跟踪的工作树文件将被合并覆盖:

然后转到您的终端并运行这些命令

cd /usr/local

然后

git reset --hard FETCH_HEAD

然后

git checkout Library

这应该让一切都井井有条。然后运行

brew update
于 2014-10-18T09:24:43.230 回答
15

让我补充一下:cd /usr/local/git 然后运行git reset --hard FETCH_HEAD

于 2013-03-27T08:58:53.337 回答
11

转到您的终端并运行这些命令

cd /usr/local

sudo git reset --hard FETCH_HEAD

sudo git checkout Library
于 2014-12-26T17:47:58.830 回答
11

对于那些使用 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 并安装 Homebrew。
于 2015-11-10T22:05:40.167 回答
5

无缘无故(或者至少没有人能理解)其中的存储库/usr/local(即 brew 安装!)丢失了它的远程存储库。因此, agit reset和 agit pull和肯定 nobrew 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
于 2012-11-16T12:05:05.540 回答