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
Ответы
Ответ 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)"