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.