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

我试图运行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 

不要忘记取得原点!

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

对于那些感兴趣的人来说:

会发生什么是你正在尝试更新brew,但是brew本身可能不是最新的(可能),通过某些操作系统更新(也可能)更改权限,或者brew稍微损坏(不太可能)。 由于brew本身就是一个git仓库,所以你必须更新或者重新设置master分支版本。 brew [默认情况下]位于/usr/local文件夹中,所以你

  1. 去那个也应该更新权限的文件夹[第一个命令](如果没有在下面看到)
  2. 取得原点[第二个命令]这意味着更新您的本地版本的远程分支的酿造
  3. 基于REMOTE主分支(也使用您当前的权限)硬重置[第三个命令]。

如果您处于非sudo或pipe理员configuration文件中,也可以input第一个命令
$ sudo chown -R `whoami` /usr/local
$ cd /usr/local
$ git reset --hard origin/master

要了解git reset,看看这篇文章 。

几个星期前,我有一个类似的问题,试图更新旧的自制软件安装。 这样做:

 git reset --hard origin/master 

/usr/local为我修好了。

好像其他人也有这个问题。 你有没有看过这里提出的解决方法?

我join了我的个人经验,因为它似乎比2012年提出的要安全一些:

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

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

    跑:

     sudo chown -R `whoami` /usr/local 

    修复权限问题(正如Chris Frisina所build议的)。 最终再次运行brew doctor ,以确保您的警告已经消失。

  3. 现在,你应该有一个

     Warning: You have uncommitted modifications to Homebrew 

    那可能会被解决

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

    正如博士本人所build议的那样。 该命令存储未提交的修改,以便在需要时可以返回并恢复它们。 它似乎比git reset --hard origin/master更安全 – 对我来说, git reset --hard origin/master

  4. 如果您愿意,请查看官方故障排除指南,如果这里和其他SO用户build议的步骤不能解决您的问题。

类似的答案,但如果你有不再跟踪的文件,你需要额外的步骤,所以从/usr/local运行

 git fetch origin git clean -f git reset --hard origin/master 

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

  • 修复一个git问题,所以你可以再次委派pipe理更改。
  • 没有手动移动文件或目录。
  • 没有手动调整文件或目录权限。

步骤(对于那些想要解释的人来说):

 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 

概述:
从我可以告诉,这个问题的实际原因是回购url的变化。 这是现在brew ,并brew.git 。 (完整的最新的url: https : //github.com/Homebrew/brew )

注1:这第一个命令将您从文件结构中的任何位置带到正确的目录。 对于我来说目录结构不同于其他人在上面显示的(Mac OS 10.11.16),但使用此命令时,这些差异应该没有关系。

注2:这第二个命令将正确的远程URL添加到一个新的别名; 我这样做,以防万一这种方法没有达到我想要的,我又需要以前的地址。 由于新的远程工作,我会邀请其他人发表评论,只是简单地改变原来的别名。 我会愉快地更新答案,以反映什么对你有用。

注意3:这个命令的结果是正确的:它报告了大量的更新,包括“==>迁移HOMEBREW_REPOSITORY到/ usr / local / Homebrew!”的特别好的报告。 (强调他们)。