尝试更新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
如果您看到权限问题,请尝试:
- 重新启动到恢复模式(启动时按住Cmd + R)并访问terminal。
- 在该terminal运行:
csrutil disable
- 重新启动到OS X
- 打开你的terminal应用程序,并从上面执行该行
- 重新启动到恢复模式并再次访问terminal。
- 在该terminal执行:
csrutil enable
- 重新启动到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