Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Homebrew fatal: needed a single revision (MacOs Sierra)

Not sure if this problem is related to upgrading to MacOs Sierra, but since that moment this error occurs when I run 'brew update'

→ brew update
Checking out v1.0.0 in /usr/local/Homebrew/Library/Taps/caskroom/homebrew-cask...
To checkout master in /usr/local/Homebrew/Library/Taps/caskroom/homebrew-cask run:
  'cd /usr/local/Homebrew/Library/Taps/caskroom/homebrew-cask && git checkout master
fatal: Cannot update paths and switch to branch 'v1.0.0' at the same time.
Did you intend to checkout 'refs/tags/1.0.0' which can not be resolved as commit?
fatal: Needed a single revision
invalid upstream refs/tags/1.0.0
Checking out v1.0.0 in /usr/local/Homebrew/Library/Taps/dart-lang/homebrew-dart...
To checkout master in /usr/local/Homebrew/Library/Taps/dart-lang/homebrew-dart run:
  'cd /usr/local/Homebrew/Library/Taps/dart-lang/homebrew-dart && git checkout master
fatal: Cannot update paths and switch to branch 'v1.0.0' at the same time.
Did you intend to checkout 'refs/tags/1.0.0' which can not be resolved as commit?
fatal: Needed a single revision
invalid upstream refs/tags/1.0.0
Checking out v1.0.0 in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core...
To checkout master in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core run:
  'cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core && git checkout master
fatal: Cannot update paths and switch to branch 'v1.0.0' at the same time.
Did you intend to checkout 'refs/tags/1.0.0' which can not be resolved as commit?
fatal: Needed a single revision
invalid upstream refs/tags/1.0.0

I tried running

cd $(brew --prefix) && git fetch && git reset --hard origin/master

But it gives me this error:

fatal: Not a git repository (or any of the parent directories): .git
like image 706
Martin van Houte Avatar asked Sep 21 '16 14:09

Martin van Houte


3 Answers

I had the same problem after upgrading to Sierra.

In addition to brew --prefix, which displays Homebrew’s install path, there’s also brew --repository, which displays where it’s .git directory is located.

man brew says that claims that “for standard installs, the prefix and repository are the same directory”. Either the man page is out of date or my install isn’t “standard”, but my prefix is /usr/local and my repository is /usr/local/Homebrew.

Using the same command but with cd $(brew --repository) worked for me:

cd $(brew --repository) && git fetch && git reset --hard origin/master
like image 110
thomasd Avatar answered Nov 17 '22 06:11

thomasd


The accepted answer didn't work for me. What worked was uninstalling homebrew and reinstalling it:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew analytics off
like image 45
herrtim Avatar answered Nov 17 '22 07:11

herrtim


This command fixed the error for me:

git -C $(brew --repository homebrew/core) checkout master
like image 1
Madhura Ambre Avatar answered Nov 17 '22 06:11

Madhura Ambre