Tyler DeWitt Tyler DeWitt - 25 days ago 6
Git Question

brew update: The following untracked working tree files would be overwritten by merge:

I tried to run

brew update
and I get an error about my local changes would be lost if I merged. I tried committing my local changes (don't remember making any, but it's been awhile), and that made things worse.

Here's the output:

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

Answer

Don't forget to fetch the origin!!!

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

Explanation, for those interested:

What happens is that you are trying to update brew, but brew itself is either not up to date (likely), there is a permissions change via some OS update (also likely), or brew is slightly corrupt (unlikely). Since brew itself is a git repo, you have to update or reset brew to the master branch version. brew [by default] is located in the /usr/local folder, so you

  1. Go to that folder [first command] which also should update permissions (if not see below)
  2. Fetch the origin [second command] which means to update your LOCAL version of the remote branch of brew
  3. Hard reset [3rd command] based on the REMOTE master branch (which also uses your current permissions).

You can also chown the first command if you are in a non sudo or admin profile
$ sudo chown -R whoami /usr/local
$ cd /usr/local
$ git reset --hard origin/master

To understand git reset, take a look at this article.