Подтвердить что ты не робот

Homebrew fatal: нужна одна ревизия (MacOs Sierra)

Не уверен, связана ли эта проблема с обновлением до MacOS Sierra, но с этого момента эта ошибка возникает, когда я запускаю '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

Я попытался запустить

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

Но это дает мне эту ошибку:

fatal: Not a git repository (or any of the parent directories): .git
4b9b3361

Ответ 1

У меня была такая же проблема после обновления до Sierra.

В дополнение к brew --prefix, который отображает путь установки Homebrews, theres также brew --repository, который показывает, где находится его каталог .git.

man brew говорит, что утверждает, что "для стандартных установок префикс и репозиторий являются одним и тем же каталогом". Либо страница man устарела, либо моя установка не является "стандартным", но мой prefix - /usr/local, а мой repository - /usr/local/Homebrew.

С помощью той же команды, но с cd $(brew --repository) работал у меня:

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

Ответ 2

Принятый ответ не помог мне. Что было, это удалить homebrew и переустановить его:

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

Ответ 3

Ничего не сработало для меня, мне пришлось прибегнуть к удалению и переустановке Brew:

# change to home directory to avoid other errors later
cd ~

# uninstall brew
rm -rf /usr/local/Cellar /usr/local/.git && cd ~ && brew cleanup

 # reinstall brew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"