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

我试图更新brew:

sudo brew update 

但是我得到这个错误:

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

列出很多文件

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

任何想法出了什么问题?

在几天前刚刚修复的Homebrew中存在一个bug 。 要修复这个bug,你可以在你的Homebrew安装中运行git reset --hard FETCH_HEAD 。 由于这不会修复已被视为已修改的文件,您还可以运行git checkout Library来将您的签出replace为最新的文件。 (擦拭所有的编辑,所以你采取适当的措施。

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

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

然后去你的terminal并运行这些命令

 cd /usr/local 

然后

 git reset --hard FETCH_HEAD 

然后

 git checkout Library 

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

 brew update 

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

去你的terminal并运行这些命令

 cd /usr/local sudo git reset --hard FETCH_HEAD sudo git checkout Library 

对于那些使用OS X El Capitan的用户,您的问题可能是系统完整性保护。 修复在这里logging 。

如果/usr/local已存在,请在terminal中运行以下命令:

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

如果/usr/local不存在:

首先,尝试以正常的方式创build/usr/local

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

如果您看到权限问题,请尝试:

  1. 重新启动到恢复模式(启动时按住Cmd + R)并访问terminal。
  2. 在该terminal运行: csrutil disable
  3. 重新启动到OS X
  4. 打开你的terminal应用程序,并从上面执行该行
  5. 重新启动到恢复模式并再次访问terminal。
  6. 在该terminal执行: csrutil enable
  7. 重新启动到OS X,您将能够写入/ usr / local&安装Homebrew。

没有理由(或者至less没有人理解) /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