尝试更新brew包管理器时出错

时间:2011-08-03 22:14:00

标签: macos homebrew package-managers

我尝试更新brew:

sudo brew update

但我收到了这个错误:

  

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

     

列出很多文件

     

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

时失败

知道出了什么问题吗?

6 个答案:

答案 0 :(得分:78)

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

答案 1 :(得分:34)

接受的答案是正确但不完整的。如果你得到的错误是

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

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

cd /usr/local

然后

git reset --hard FETCH_HEAD

然后

git checkout Library

这应该让一切顺利。然后运行

brew update

答案 2 :(得分:15)

让我添加:cd /usr/local/git 然后运行git reset --hard FETCH_HEAD

答案 3 :(得分:11)

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

cd /usr/local

sudo git reset --hard FETCH_HEAD

sudo git checkout Library

答案 4 :(得分:10)

对于那些使用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. 重新启动进入恢复模式&再次访问终端。
  7. 在该终端执行:csrutil enable
  8. 重新启动回OS X&你可以写信给/ usr / local&安装Homebrew。

答案 5 :(得分:5)

/usr/local(这是brew安装!)中的存储库没有任何理由(或者至少没有人理解)丢失了它的远程存储库。因此,git resetgit 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