web-dev-qa-db-fra.com

Erreur lors de la tentative de mise à jour du gestionnaire de package d'infusion

J'ai essayé de mettre à jour le breuvage:

Sudo brew update

Mais j'ai eu cette erreur:

erreur: vos modifications locales dans les fichiers suivants seraient écrasées par la fusion:

Liste de nombreux fichiers

Erreur: échec lors de l'exécution de git pull http://github.com/mxcl/homebrew.git master

Une idée de ce qui ne va pas?

47
Chiron

Il y avait un bug dans Homebrew qui a été corrigé il y a quelques jours à peine. Pour corriger le bogue, vous pouvez exécuter git reset --hard FETCH_HEAD dans votre installation Homebrew. Comme cela ne résoudra pas les fichiers déjà considérés comme modifiés, vous pouvez également exécuter git checkout Library pour remplacer votre paiement par les derniers fichiers. (Cela efface toutes les modifications, alors prenez les mesures appropriées avec celles que vous avez apportées.)

78
Turadg

La réponse acceptée est correcte mais incomplète. Si vous obtenez l'erreur de

erreur: les fichiers d'arborescence de travail non suivis suivants seraient remplacés par la fusion:

Accédez ensuite à votre terminal et exécutez ces commandes

cd /usr/local

Alors

git reset --hard FETCH_HEAD

Alors

git checkout Library

Cela devrait tout mettre en ordre. Ensuite, exécutez

brew update
34
JGallardo

Permettez-moi d'ajouter: cd /usr/local/git puis exécutez git reset --hard FETCH_HEAD

15
pixel 67

accédez à votre terminal et exécutez ces commandes

cd /usr/local

Sudo git reset --hard FETCH_HEAD

Sudo git checkout Library
11
hguzman

Pour ceux d'entre vous qui utilisent OS X El Capitan, votre problème peut être la protection de l'intégrité du système.

Si /usr/local existe déjà, exécutez ce qui suit dans Terminal:

Sudo chown -R $(whoami):admin /usr/local

Si /usr/local n'existe pas:

Tout d'abord, essayez de créer /usr/local la voie normale:

Sudo mkdir /usr/local && Sudo chflags norestricted /usr/local && Sudo chown -R $(whoami):admin /usr/local

Si vous voyez des problèmes d'autorisation, essayez plutôt:

  1. Redémarrez en mode de récupération (maintenez Cmd + R au démarrage) et accédez au terminal.
  2. Dans ce terminal, exécutez: csrutil disable
  3. Redémarrez sous OS X
  4. Ouvrez votre application Terminal et exécutez la ligne juste au-dessus
  5. Redémarrez en mode de récupération et accédez à nouveau au terminal.
  6. Dans ce terminal, exécutez: csrutil enable
  7. Redémarrez sous OS X et vous pourrez écrire dans/usr/local et installer Homebrew.
10
Joseph Hansen

Pour aucune raison (ou du moins personne que je comprendrais), le référentiel dans /usr/local (qui est l'installation de brew!) a perdu son référentiel distant. Donc, ni un git reset ni un git pull et certainement pas brew update travaillerait.

Comment savez-vous que c'est arrivé? Vérifier /usr/local/.git/config s'il existe des lignes comme celles-ci:

[remote "Origin"]
url = http://github.com/mxcl/homebrew.git
fetch = +refs/heads/*:refs/remotes/Origin/*

Sinon, procédez comme suit:

cd /usr/local
git remote add Origin http://github.com/mxcl/homebrew.git
git pull Origin master
5
Achim Sperling