374 votes

mise à jour de la brasserie : les fichiers non suivis suivants de l'arbre de travail seraient écrasés par la fusion :

J'ai essayé d'exécuter brew update et je reçois une erreur disant que mes modifications locales seraient perdues si je fusionnais. J'ai essayé de valider mes modifications locales (je ne me souviens pas en avoir fait, mais cela fait un moment), et cela a empiré les choses.

Voici le résultat :

MBP:Library User$ sudo brew update
error: The following untracked working tree files would be overwritten by merge:
    Library/Aliases/fastcgi
    Library/Aliases/htop
    Library/Aliases/nodejs
    Library/Aliases/ocio
    Library/Aliases/oiio
    Library/Aliases/pgrep
    Library/Aliases/pkill
    Library/Contributions/cmds/brew-beer.rb
    Library/Contributions/cmds/brew-dirty.rb
    Library/Contributions/cmds/brew-graph
    Library/Contributions/cmds/brew-grep
    Library/Contributions/cmds/brew-leaves.rb
    Library/Contributions/cmds/brew-linkapps.rb
    Library/Contributions/cmds/brew-man
    Library/Contributions/cmds/brew-mirror-check.rb
    Library/Contributions/cmds/brew-missing.rb
    Library/Contributions/cmds/brew-pull.rb
    Library/Contributions/cmds/brew-readall.rb
    Library/Contributions/cmds/brew-server
    Library/Contributions/cmds/brew-services.rb
    Library/Contributions/cmds/brew-switch.rb
    Library/Contributions/cmds/brew-test-bot.commit.html.erb
    Library/Contributions/cmds/brew-test-bot.css
    Library/Contributions/cmds/brew-test-bot.index.html.erb
    Library/Contributions/cmds/brew-test-bot.rb
    Library/Contributions/cmds/brew-tests.rb
    Library/Contributions/cmds/brew-unpack.rb
    Library/Contributions/cmds/brew-which.rb
    Library/Contributions/install_homebrew.rb
    Library/Formula/abcl.rb
    Library/Formula/abyss.rb
    Library/Formula/akka.rb
    Library/Formula/apollo.rb
    Library/Formula/appledoc.rb
    Library/Formula/arangodb.rb
    Library/Formula/autoconf.rb
    Library/Formula/automake.rb
    Library/Formula/avidemux.rb
    Library/Formula/bind.rb
    Library/Formula/bsdconv.rb
    Library/Formula/bsdmake.rb
    Library/Formula/camellia.rb
    Library/Formula/cbmbasic.rb
    Library/Formula/cdo.rb
    Library/Formula/checkstyle.rb
    Library/Formula/cifer.rb
    Library/Formula/clhep.rb
    Library/Formula/collada-dom.rb
    Library/Formula/crash.rb
    Library/Formula/crossroads.rb
    Library/Formula/css-crush.rb
    Library/Formula/curlftpfs.rb
    Library/Formula/dart.rb
    Library/Formula/dasm.rb
    Library/Formula/dfc.rb
    Library/Formula/di.rb
    Library/Formula/dsniff.rb
    Library/Formula/dupx.rb
    Library/Formula/dwatch.rb
    Library/Formula/eprover.rb
    Library/Formula/ext2fuse.rb
    Library/Formula/ezlupdate.rb
    Library/Formula/f3.rb
    Library/Formula/fastx_toolkit.rb
    Library/Formula/fceux.rb
    Library/Formula/findbugs.rb
    Library/Formula/freerdp.rb
    Library/Formula/funcoeszz.rb
    Library/Formula/fwknop.rb
    Library/Formula/gabedit.rb
    Library/Formula/gbdfed.rb
    Library/Formula/gconf.rb
    Library/Formula/git-encrypt.rb
    Library/Formula/glm.rb
    Library/Formula/gmap-gsnap.rb
    Library/Formula/gnu-arch.rb
    Library/Formula/gnunet.rb
    Library/Formula/gobby.rb
    Library/Formula/gptfdisk.rb
    Library/Formula/griffon.rb
    Library/Formula/grok.rb
    Library/Formula/gtk-chtheme.rb
    Library/Formula/gtkglextmm.rb
    Library/Formula/gtmess.rb
    Library/Formula/hg-flow.rb
    Library/Formula/hqx.rb
    Library/Formula/htop-osx.rb
    Library/Formula/htpdate.rb
    Library/Formula/imap-uw.rb
    Library/Formula/iozone.rb
    Library/Formula/ipbt.rb
    Library/Formula/ipe.rb
    Library/Formula/ispc.rb
    Library/Formula/ispell.rb
    Library/Formula/jigdo.rb
    Library/Formula/jing.rb
    Library/Formula/jless.rb
    Library/Formula/jpeginfo.rb
    Library/Formula/konoha.rb
    Library/Formula/legit.rb
    Library/Formula/libcouchbase.rb
    Library/Formula/libcuefile.rb
    Library/Formula/libextractor.rb
    Library/Formula/libglademm.rb
    Library/Formula/libgtextutils.rb
    Library/Formula/libinfinity.rb
    Library/Formula/libkate.rb
    Library/Formula/libqalculate.rb
    Library/Formula/libqglviewer.rb
    Library/Formula/libreplaygain.rb
    Library/Formula/libtool.rb
    Library/Formula/libvbucket.rb
    Library/Formula/libvo-aacenc.rb
    Library/Formula/libxmi.rb
    Library/Formula/lifelines.rb
    Library/Formula/makeicns.rb
    Library/Formula/mathgl.rb
    Library/Formula/meld.rb
    Library/Formula/mesalib-glw.rb
    Library/Formula/minisat.rb
    Library/Formula/minuit2.rb
    Library/Formula/mobile-shell.rb
    Library/Formula/movgrab.rb
    Library/Formula/mp3cat.rb
    Library/Formula/mpich2.rb
    Library/Formula/mrfast.rb
    Library/Formula/musepack.rb
    Library/Formula/ndiff.rb
    Library/Formula/net6.rb
    Library/Formula/nrpe.rb
    Library/Formula/nuttcp.rb
    Library/Formula/oath-toolkit.
Updating aa07533..3f070ef
Aborting
Error: Failed while executing git pull  origin refs/heads/master:refs/remotes/origin/master

745voto

chris Frisina Points 6409

N'oubliez pas d'aller chercher l'origine :

cd /usr/local/Homebrew
git fetch origin
git reset --hard origin/master

Ce qui se passe est que vous essayez de mettre à jour brew, mais brew lui-même n'est pas à jour (probable), il y a un changement de permissions via une mise à jour du système d'exploitation (également probable), ou brew est légèrement corrompu (peu probable). Comme brew lui-même est un dépôt git, vous devez mettre à jour ou réinitialiser brew à la version de la branche master. brew [par défaut] est situé dans le répertoire /usr/local/Homebrew pour que vous

  1. Allez dans ce dossier [première commande] qui devrait également mettre à jour les permissions (sinon, voir ci-dessous).
  2. Récupérer l'origine [deuxième commande] ce qui signifie mettre à jour votre version LOCALE de la branche distante de brew.
  3. Réinitialisation matérielle [3ème commande] basée sur la branche maître REMOTE (qui utilise également vos permissions actuelles).

Vous pouvez également chown la première commande si vous êtes dans un profil non sudo ou administrateur

sudo chown -R `whoami` /usr/local/Homebrew
cd /usr/local/Homebrew
git reset --hard origin/master

Pour comprendre la réinitialisation de git, jetez un coup d'oeil à cet article .

3 votes

Je devais git fetch origin avant que la réinitialisation ne fonctionne. Merci. C'est drôle comme cette réponse a été ajoutée le jour précédent, j'ai de la chance !

3 votes

/usr/local git fetch origin fatal: 'origin' does not appear to be a git repository fatal: The remote end hung up unexpectedly

0 votes

@RichBradshaw 'origin' fait référence au dépôt 'distant'. Votre problème semble être soit un problème de connexion (contrairement à l'utilisation de GHub), une erreur de référence (votre url est mauvaise), ou probablement que vous pointez vers le mauvais dépôt, peut-être d'un type différent (par exemple SVN).

107voto

Joe Holloway Points 11122

J'ai eu un problème similaire il y a quelques semaines en essayant de mettre à jour une vieille installation homebrew. Je fais ça :

git reset --hard origin/master

sur /usr/local l'a réparé pour moi.

Il semble que d'autres personnes aient eu ce problème également. Avez-vous examiné les solutions de contournement proposées ? aquí ?

0 votes

Ça a marché comme un champion. Merci pour le lien aussi !

0 votes

Note aux autres : essayez d'exécuter 'git fetch origin' comme suggéré dans l'autre réponse -- seule cette opération a résolu le problème pour moi (il n'y avait pas de problème évident sans 'git fetch origin' autre que le fait que Brew ne voyait pas de mises à jour ;)) ).

0 votes

Je suis tombé sur cette erreur de brassage ce matin. Une petite recherche sur Google m'a conduit ici. Cette réponse a totalement résolu mon problème. Merci !

12voto

furins Points 2250

J'ajoute mon expérience personnelle, car elle semble un peu plus sûre que ce qui a été proposé en 2012 :

  1. Exécuter brew doctor .

  2. Si vous obtenez l'avertissement suivant :

    Warning: The /usr/local directory is not writable.

    courir :

    sudo chown -R `whoami` /usr/local

    pour résoudre les problèmes de permissions (comme suggéré également par Chris Frisina). Finalement, exécutez brew doctor à nouveau pour vous assurer que l'avertissement a disparu.

  3. Maintenant, vous devriez avoir un

    Warning: You have uncommitted modifications to Homebrew

    qui peut être résolu par

    cd /usr/local/Library && git stash && git clean -d -f

    comme suggéré par Dr.Brew lui-même. La commande stocke les modifications non engagées afin que vous puissiez revenir en arrière et les récupérer si nécessaire. Cela semblait plus sûr que git reset --hard origin/master à moi.

  4. Si vous le souhaitez, vérifiez le guide officiel de dépannage si les mesures suggérées ici et par d'autres utilisateurs de SO ne résolvent pas votre problème.

0voto

Haris Krajina Points 3051

Réponse similaire, mais si vous avez des fichiers qui ne sont plus suivis, vous avez besoin d'une étape supplémentaire. /usr/local exécuter

git fetch origin
git clean -f
git reset --hard origin/master

0voto

Kay V Points 749

Cette approche est peut-être plus simple que d'autres. Elle implique :

  • la correction d'une issue git afin de pouvoir lui déléguer à nouveau la gestion des changements.
  • aucun déplacement manuel de fichiers ou de répertoires.
  • aucun réglage manuel des autorisations de fichiers ou de répertoires.

Étapes (avec des notes pour ceux qui veulent des explications) :

cd $(brew --repository)                              // see Note 1 below
git remote add brew https://github.com/Homebrew/brew // see Note 2 below
git pull brew master                                 // promising fast-forward report!
brew update                                          // see Note 3 below 

Vue d'ensemble :
D'après ce que je peux dire, la cause réelle de ce problème est un changement dans l'url du repo. C'est maintenant brew et était brew.git . (url complet à jour : https://github.com/Homebrew/brew )

Note 1 : Cette première commande vous emmène de n'importe où dans votre structure de fichiers vers le bon répertoire. La structure des répertoires est différente pour moi de ce que les autres montrent ci-dessus (Mac OS 10.11.16), mais avec cette commande, ces différences ne devraient pas avoir d'importance.

Note 2 : Cette seconde commande ajoute l'url distante correcte à un nouvel alias ; je l'ai fait juste au cas où cette approche n'aurait pas permis d'obtenir ce que je voulais et que j'aurais à nouveau besoin de l'ancienne adresse. Puisque la nouvelle adresse distante a fonctionné, je vais inviter quelqu'un d'autre à commenter le simple changement de l'url aliasée par l'origine. Je serai heureux de mettre à jour la réponse pour refléter ce qui a fonctionné pour vous.

Note 3 : Cette quatrième commande a exactement le résultat souhaité : elle rapporte un grand nombre de mises à jour, y compris le rapport particulièrement agréable de "==> Migrated HOMEBREW_REPOSITORY to /usr/local/Homebrew !" (c'est nous qui soulignons).

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