Tyler DeWitt - 4 months ago 22

Git Question

I tried to run

`brew update`

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

- Go to that folder [first command] which also should update permissions (if not see below)
- Fetch the origin [second command] which means to update your LOCAL version of the remote branch of brew
- 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.