brew update: i seguenti file dell'albero di lavoro non tracciati verrebbero sovrascritti dall'unione:


369

Ho provato a eseguire brew updatee ricevo un errore sulle mie modifiche locali andrebbero perse se mi unissi. Ho provato ad apportare le modifiche locali (non ricordo di averne apportate alcune, ma è passato un po 'di tempo) e ciò ha peggiorato le cose.

Ecco l'output:

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

Risposte:


738

Non dimenticare di recuperare l'origine !!!

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

Spiegazione, per gli interessati:

Quello che succede è che stai cercando di aggiornare brew, ma brew stesso non è aggiornato (probabilmente), c'è una modifica delle autorizzazioni tramite alcuni aggiornamenti del sistema operativo (anche probabile) o brew è leggermente corrotto (improbabile). Poiché brew stesso è un repository git, è necessario aggiornare o ripristinare brew alla versione del ramo principale. brew [per impostazione predefinita] si trova nella /usr/localcartella, quindi tu

  1. Vai a quella cartella [primo comando] che dovrebbe anche aggiornare le autorizzazioni (se non vedi sotto)
  2. Recupera l'origine [secondo comando] che significa aggiornare la versione LOCALE del ramo remoto di brew
  3. Hard reset [3 ° comando] basato sul ramo master REMOTE (che utilizza anche le autorizzazioni correnti).

Puoi anche chownil primo comando se sei in un profilo non sudo o admin
$ sudo chown -R `whoami` /usr/local
$ cd /usr/local
$git reset --hard origin/master

Per capire git reset, dai un'occhiata a questo articolo .


3
Ho dovuto git fetch originprima che il ripristino funzionasse. Grazie. Divertente come questa risposta sia stata aggiunta il giorno scorso, fortunata me!
— ghoppe,

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

2
Dai un'occhiata a questo github.com/mxcl/homebrew/wiki/Common-Issues L'errore è descritto e come correggerlo.
— Stephane Paquet,

11
Ha funzionato, ma ho dovuto fare l'ultimo passo consudo
— altumano,

3
questo mi succede ancora regolarmente, infatti ho dovuto ripetere questi passaggi 3 volte negli ultimi mesi. Abbastanza fastidioso, è utile che SO abbia una funzione preferita (che dice che
— cercare su Google

107

Ho avuto un problema simile un paio di settimane fa nel tentativo di aggiornare una vecchia installazione homebrew. Facendo questo:

git reset --hard origin/master

in /usr/local riparato per me.

Sembra che anche altre persone abbiano avuto questo problema. Hai esaminato una delle soluzioni proposte qui ?


Ha funzionato come un campione. Grazie anche per il link!
— Tyler DeWitt,

Nota agli altri: prova a eseguire 'git fetch origin' come suggerito nell'altra risposta - solo facendolo risolto correttamente questo problema per me (non c'era nessun problema ovvio senza 'git fetch origin' diverso da brew che non vedeva alcun aggiornamento;) ).
— Gilead,

Stamattina mi sono imbattuto in questo errore di infusione. Un po 'di googling mi porta qui. Questa risposta ha risolto totalmente il mio problema. Grazie!
— Memoht

2
prima si può avere bisogno di cd usr/locale git remote add origin https://github.com/mxcl/homebrew.gitpuoi anche consultare stackoverflow.com/questions/6024671/...
— s2t2

11

Sto aggiungendo la mia esperienza personale, dal momento che sembra un po 'più sicuro di quanto proposto nel 2012:

  1. Corri brew doctor.
  2. Se ricevi il seguente avviso:

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

    correre:

    sudo chown -R `whoami` /usr/local
    

    per risolvere i problemi di autorizzazione (come suggerito anche da Chris Frisina). Alla fine esegui di brew doctornuovo per assicurarti che l'avviso non sia più disponibile.

  3. Ora dovresti avere un

    Warning: You have uncommitted modifications to Homebrew
    

    che può essere risolto da Bey

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

    come suggerito dal Dr.Brew stesso. Il comando blocca le modifiche non impegnate in modo da poter tornare indietro e recuperarle se necessario. Mi è sembrato più sicuro di git reset --hard origin/masterme.

  4. Se lo desideri, consulta la guida ufficiale alla risoluzione dei problemi se i passaggi suggeriti qui e da altri utenti SO non risolvono il problema.


cd / usr / local / Library && git stash && git clean -d -f e poi brew update lo hanno risolto per me
— at0mzk,

0

Risposta simile ma se si dispone di file che non vengono più monitorati, è necessario /usr/localeseguire un ulteriore passaggio dall'esecuzione

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

0

Questo approccio può essere più semplice di alcuni. Implica:

  • risolvere un problema git in modo da poter delegare nuovamente la gestione delle modifiche ad esso.
  • nessuna mossa manuale di file o directory.
  • nessuna regolazione manuale delle autorizzazioni per file o directory.

Passaggi (con note per chi desidera spiegazioni):

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 

Panoramica:
da quello che posso dire, la vera causa di questo problema è una modifica dell'URL repo. È adesso brewe lo era brew.git. (URL completo aggiornato: https://github.com/Homebrew/brew )

Nota 1: questo primo comando ti porta da qualsiasi punto della struttura del file nella directory corretta. La struttura delle directory per me è diversa da quella mostrata sopra dagli altri (Mac OS 10.11.16), ma con questo comando, queste differenze non dovrebbero avere importanza.

Nota 2: questo secondo comando aggiunge l'URL remoto corretto a un nuovo alias; L'ho fatto solo nel caso in cui questo approccio non raggiungesse quello che volevo e avessi di nuovo bisogno dell'indirizzo precedente. Dal momento che il nuovo telecomando ha funzionato, inviterò qualcun altro a commentare semplicemente cambiando l'URL aliasato dall'origine. Aggiornerò felicemente la risposta per riflettere ciò che ha funzionato per te.

Nota 3: questo quarto comando ha esattamente il risultato desiderato: riporta un gran numero di aggiornamenti, incluso il rapporto particolarmente piacevole di "==> HOMEBREW_REPOSITORY migrato su / usr / local / Homebrew!" (enfatizza la loro).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.