我尝试更新brew:
sudo brew update
但我收到了这个错误:
错误:合并后将覆盖对以下文件的本地更改:
列出很多文件
错误:执行git pull http://github.com/mxcl/homebrew.git master
时失败
知道出了什么问题吗?
答案 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
如果您看到权限问题,请尝试:
csrutil disable
csrutil enable
答案 5 :(得分:5)
在/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