31 votes

Homebrew fatal : nécessité d'une seule révision (MacOs Sierra)

Je ne sais pas si ce problème est lié à la mise à niveau vers MacOs Sierra, mais depuis, cette erreur se produit lorsque je lance "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

J'ai essayé d'exécuter

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

Mais cela me donne cette erreur :

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

60voto

trdarr Points 496

J'ai eu le même problème après la mise à niveau vers Sierra.

En plus de brew --prefix qui affiche le chemin d'installation de Homebrew, il y a aussi brew --repository qui affiche où il est .git est situé.

man brew affirme que "pour les installations standard, le préfixe et le référentiel sont le même répertoire". Soit la page de manuel n'est pas à jour, soit mon installation n'est pas "standard", mais mon installation de prefix est /usr/local et mon repository est /usr/local/Homebrew .

En utilisant la même commande mais avec cd $(brew --repository) a fonctionné pour moi :

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

3voto

herrtim Points 973

La réponse acceptée n'a pas fonctionné pour moi. Ce qui a fonctionné, c'est la désinstallation de homebrew et le réinstaller :

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

0voto

a20 Points 174

Rien n'a vraiment fonctionné pour moi, j'ai dû recourir à la désinstallation et à la réinstallation de 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)"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X