brew更新:以下未跟踪的工作树文件将被merge覆盖:


369

我尝试运行brew update,但是如果合并,将会收到关于本地更改的错误信息。我尝试进行本地更改(不记得做任何更改,但是已经有一段时间了),这使情况变得更糟。

这是输出:

MBP:Library User$ sudo brew update
error: The following untracked working tree files would be overwritten by merge:
    Library/Aliases/fastcgi
    Library/Aliases/htop
    Library/Aliases/nodejs
    Library/Aliases/ocio
    Library/Aliases/oiio
    Library/Aliases/pgrep
    Library/Aliases/pkill
    Library/Contributions/cmds/brew-beer.rb
    Library/Contributions/cmds/brew-dirty.rb
    Library/Contributions/cmds/brew-graph
    Library/Contributions/cmds/brew-grep
    Library/Contributions/cmds/brew-leaves.rb
    Library/Contributions/cmds/brew-linkapps.rb
    Library/Contributions/cmds/brew-man
    Library/Contributions/cmds/brew-mirror-check.rb
    Library/Contributions/cmds/brew-missing.rb
    Library/Contributions/cmds/brew-pull.rb
    Library/Contributions/cmds/brew-readall.rb
    Library/Contributions/cmds/brew-server
    Library/Contributions/cmds/brew-services.rb
    Library/Contributions/cmds/brew-switch.rb
    Library/Contributions/cmds/brew-test-bot.commit.html.erb
    Library/Contributions/cmds/brew-test-bot.css
    Library/Contributions/cmds/brew-test-bot.index.html.erb
    Library/Contributions/cmds/brew-test-bot.rb
    Library/Contributions/cmds/brew-tests.rb
    Library/Contributions/cmds/brew-unpack.rb
    Library/Contributions/cmds/brew-which.rb
    Library/Contributions/install_homebrew.rb
    Library/Formula/abcl.rb
    Library/Formula/abyss.rb
    Library/Formula/akka.rb
    Library/Formula/apollo.rb
    Library/Formula/appledoc.rb
    Library/Formula/arangodb.rb
    Library/Formula/autoconf.rb
    Library/Formula/automake.rb
    Library/Formula/avidemux.rb
    Library/Formula/bind.rb
    Library/Formula/bsdconv.rb
    Library/Formula/bsdmake.rb
    Library/Formula/camellia.rb
    Library/Formula/cbmbasic.rb
    Library/Formula/cdo.rb
    Library/Formula/checkstyle.rb
    Library/Formula/cifer.rb
    Library/Formula/clhep.rb
    Library/Formula/collada-dom.rb
    Library/Formula/crash.rb
    Library/Formula/crossroads.rb
    Library/Formula/css-crush.rb
    Library/Formula/curlftpfs.rb
    Library/Formula/dart.rb
    Library/Formula/dasm.rb
    Library/Formula/dfc.rb
    Library/Formula/di.rb
    Library/Formula/dsniff.rb
    Library/Formula/dupx.rb
    Library/Formula/dwatch.rb
    Library/Formula/eprover.rb
    Library/Formula/ext2fuse.rb
    Library/Formula/ezlupdate.rb
    Library/Formula/f3.rb
    Library/Formula/fastx_toolkit.rb
    Library/Formula/fceux.rb
    Library/Formula/findbugs.rb
    Library/Formula/freerdp.rb
    Library/Formula/funcoeszz.rb
    Library/Formula/fwknop.rb
    Library/Formula/gabedit.rb
    Library/Formula/gbdfed.rb
    Library/Formula/gconf.rb
    Library/Formula/git-encrypt.rb
    Library/Formula/glm.rb
    Library/Formula/gmap-gsnap.rb
    Library/Formula/gnu-arch.rb
    Library/Formula/gnunet.rb
    Library/Formula/gobby.rb
    Library/Formula/gptfdisk.rb
    Library/Formula/griffon.rb
    Library/Formula/grok.rb
    Library/Formula/gtk-chtheme.rb
    Library/Formula/gtkglextmm.rb
    Library/Formula/gtmess.rb
    Library/Formula/hg-flow.rb
    Library/Formula/hqx.rb
    Library/Formula/htop-osx.rb
    Library/Formula/htpdate.rb
    Library/Formula/imap-uw.rb
    Library/Formula/iozone.rb
    Library/Formula/ipbt.rb
    Library/Formula/ipe.rb
    Library/Formula/ispc.rb
    Library/Formula/ispell.rb
    Library/Formula/jigdo.rb
    Library/Formula/jing.rb
    Library/Formula/jless.rb
    Library/Formula/jpeginfo.rb
    Library/Formula/konoha.rb
    Library/Formula/legit.rb
    Library/Formula/libcouchbase.rb
    Library/Formula/libcuefile.rb
    Library/Formula/libextractor.rb
    Library/Formula/libglademm.rb
    Library/Formula/libgtextutils.rb
    Library/Formula/libinfinity.rb
    Library/Formula/libkate.rb
    Library/Formula/libqalculate.rb
    Library/Formula/libqglviewer.rb
    Library/Formula/libreplaygain.rb
    Library/Formula/libtool.rb
    Library/Formula/libvbucket.rb
    Library/Formula/libvo-aacenc.rb
    Library/Formula/libxmi.rb
    Library/Formula/lifelines.rb
    Library/Formula/makeicns.rb
    Library/Formula/mathgl.rb
    Library/Formula/meld.rb
    Library/Formula/mesalib-glw.rb
    Library/Formula/minisat.rb
    Library/Formula/minuit2.rb
    Library/Formula/mobile-shell.rb
    Library/Formula/movgrab.rb
    Library/Formula/mp3cat.rb
    Library/Formula/mpich2.rb
    Library/Formula/mrfast.rb
    Library/Formula/musepack.rb
    Library/Formula/ndiff.rb
    Library/Formula/net6.rb
    Library/Formula/nrpe.rb
    Library/Formula/nuttcp.rb
    Library/Formula/oath-toolkit.
Updating aa07533..3f070ef
Aborting
Error: Failed while executing git pull  origin refs/heads/master:refs/remotes/origin/master

Answers:


738

不要忘记获取原产地!!!

$ cd /usr/local
$ git fetch origin
$git reset --hard origin/master

解释,针对那些感兴趣的人:

发生的情况是您正在尝试更新brew,但是brew本身不是最新的(可能),通过某些OS更新(也可能)发生了权限更改,或者brew稍微损坏了(不太可能)。由于brew本身是git repo,因此您必须将brew更新或重置为master分支版本。brew [默认]位于/usr/local文件夹中,因此您

  1. 转到该文件夹​​[第一个命令],该文件夹也应更新权限(如果未在下面看到)
  2. 获取原点[第二条命令],这意味着更新您的brew远程分支的本地版本
  3. 基于REMOTE master分支(也使用您当前的权限)进行硬重置[第3命令]。

chown如果您使用的是非sudo或管理员个人资料,也可以执行第一个命令
$ sudo chown -R `whoami` /usr/local
$ cd /usr/local
$git reset --hard origin/master

要了解git reset,请看一下这篇文章


3
git fetch origin在重置生效之前,我不得不这样做。谢谢。在过去的一天中如何添加此答案,真是太好了,我很幸运!
ghoppe 2012年

2
/usr/local git fetch origin fatal: 'origin' does not appear to be a git repository fatal: The remote end hung up unexpectedly
Rich Bradshaw

2
看看这个github.com/mxcl/homebrew/wiki/Common-Issues错误被描述以及如何纠正。
斯蒂芬·帕奎特

11
它奏效了,但我必须做的最后一步sudo
altumano

3
这仍然是我经常发生的事情,实际上,在过去的几个月中,我需要重复执行这些步骤3次。非常烦人的是,SO具有一个喜欢的功能很方便(表示谷歌搜索错误通常会将此帖子作为第一结果)
totallyNotLizards 2014年

107

几周前,我尝试更新旧的自制软件时遇到了类似的问题。这样做:

git reset --hard origin/master

/usr/local固定对我来说。

似乎其他人也有这个问题。您是否在此处查看了任何建议的解决方法?


像冠军一样工作。也感谢您的链接!
泰勒·德威特

其他注意事项:请尝试按照其他答案中的建议运行'git fetch origin'-仅这样做对我而言已正确解决了这个问题(没有'git fetch origin'的问题很明显,除了brew没有任何更新;) )。
Gilead 2012年

今天早上我刚遇到这个酿造错误。有点谷歌搜索将我带到这里。这个答案完全解决了我的问题。谢谢!
2013年

2
首先,您可能不得不cd usr/local并且git remote add origin https://github.com/mxcl/homebrew.git也请参阅stackoverflow.com/questions/6024671/…–
s2t2

11

我要添加我的个人经验,因为这似乎比2012年提出的建议更安全:

  1. 运行brew doctor
  2. 如果收到以下警告:

    Warning: The /usr/local directory is not writable.
    

    跑:

    sudo chown -R `whoami` /usr/local
    

    解决权限问题(克里斯·弗里西纳(Chris Frisina)也建议)。最终brew doctor再次运行以确保您自己已经消除了警告。

  3. 现在,您应该有一个

    Warning: You have uncommitted modifications to Homebrew
    

    也许可以解决

    cd /usr/local/Library && git stash && git clean -d -f
    

    正如布鲁博士本身所建议的。该命令将存储未提交的修改,因此您可以根据需要返回并恢复它们。git reset --hard origin/master对我来说,这似乎更安全。

  4. 如果您愿意,请查看官方故障排除指南,以了解此处以及其他SO用户建议的步骤是否不能解决您的问题。


cd / usr / local / Library && git stash && git clean -d -f,然后brew更新为我修复它
at0mzk 2015年


0

这种方法可能比某些方法更简单。它涉及:

  • 解决git问题,以便您可以再次将更改委派给它。
  • 无需手动移动文件或目录。
  • 无需手动调整文件或目录权限。

步骤(带注释的说明):

cd $(brew --repository)                              // see Note 1 below
git remote add brew https://github.com/Homebrew/brew // see Note 2 below
git pull brew master                                 // promising fast-forward report!
brew update                                          // see Note 3 below 

概述:据
我所知,此问题的实际原因是仓库网址的更改。现在brew和过去brew.git。(完整的最新网址:https : //github.com/Homebrew/brew

注意1:第一个命令会将您从文件结构中的任何位置带到正确的目录。对于我来说,目录结构与上面显示的目录结构(Mac OS 10.11.16)不同,但是使用此命令,这些差别无关紧要。

注意2:这第二个命令将正确的远程URL添加到新的别名中。我这样做是为了防止这种方法无法实现我想要的功能,而我又需要以前的地址。由于新的遥控器有效,因此我将邀请其他人对仅更改由origin别名的url进行评论。我会很高兴地更新答案,以反映出对您有用的方法。

注意3:第四个命令完全具有所需的结果:它报告了大量更新,包括特别好的报告“ ==>已将HOMEBREW_REPOSITORY迁移到/ usr / local / Homebrew!”。(强调他们的)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.