Actualización de preparación: los siguientes archivos de árbol de trabajo no rastreados se sobrescribirán mediante fusión:


369

Intenté ejecutar brew updatey recibo un error sobre mis cambios locales que se perderían si me fusionara. Traté de comprometer mis cambios locales (no recuerdo haber hecho ninguno, pero ha pasado un tiempo), y eso empeoró las cosas.

Aquí está la salida:

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

Respuestas:


738

¡No olvides buscar el origen!

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

Explicación, para los interesados:

Lo que sucede es que está tratando de actualizar la preparación, pero la preparación en sí misma no está actualizada (probablemente), hay un cambio de permisos a través de alguna actualización del sistema operativo (también es probable) o la preparación está ligeramente corrupta (poco probable). Dado que brew en sí es un repositorio git, debe actualizar o restablecer brew a la versión de la rama maestra. brew [por defecto] se encuentra en la /usr/localcarpeta, por lo que

  1. Vaya a esa carpeta [primer comando] que también debería actualizar los permisos (si no, vea a continuación)
  2. Obtenga el origen [segundo comando] que significa actualizar su versión LOCAL de la rama remota de brew
  3. Restablecimiento completo [3er comando] basado en la rama maestra REMOTA (que también usa sus permisos actuales).

También puede usar chownel primer comando si está en un perfil no sudo o administrador
$ sudo chown -R `whoami` /usr/local
$ cd /usr/local
$git reset --hard origin/master

Para entender git reset, mira este artículo .


3
Tenía que hacerlo git fetch originantes de que el reinicio funcionara. Gracias. Es curioso cómo se agregó esta respuesta el día anterior, ¡qué suerte!
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
Eche un vistazo a este github.com/mxcl/homebrew/wiki/Common-Issues Se describe el error y también cómo corregirlo.
Stephane Paquet

11
Funcionó, pero tuve que dar el último paso consudo
altumano

3
Esto todavía me sucede regularmente, de hecho, he tenido que repetir estos pasos 3 veces en los últimos meses. Bastante molesto, es útil que por lo tanto tiene una función favorita (que dicha googlear el error trae este post como primer resultado por lo general)
totallyNotLizards

107

Tuve un problema similar hace un par de semanas tratando de actualizar una antigua instalación de homebrew. Haciendo esto:

git reset --hard origin/master

en /usr/localarreglado para mí.

Parece que otras personas también han tenido este problema. ¿Has revisado alguna de las soluciones propuestas aquí ?


Trabajó como un campeón. Gracias por el enlace también!
Tyler DeWitt

Nota para los demás: intente ejecutar 'git fetch origin' como se sugiere en la otra respuesta; solo hacerlo solucionó correctamente este problema para mí (no había ningún problema obvio sin 'git fetch origin' aparte de brew sin ver ninguna actualización;) )
Galaad

Acabo de encontrarme con este error de preparación esta mañana. Un pequeño googlear me condujo hasta aquí. Esta respuesta resolvió totalmente mi problema. ¡Gracias!
memoria

2
primero puede que tenga que hacerlo cd usr/localy git remote add origin https://github.com/mxcl/homebrew.gitvea también stackoverflow.com/questions/6024671/…
s2t2

11

Estoy agregando mi experiencia personal, ya que parece un poco más seguro que lo propuesto en 2012:

  1. Ejecutar brew doctor.
  2. Si recibe la siguiente advertencia:

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

    correr:

    sudo chown -R `whoami` /usr/local
    

    para solucionar los problemas de permisos (como lo sugiere también Chris Frisina). Finalmente, brew doctorvuelva a ejecutar para asegurarse de que la advertencia haya desaparecido.

  3. Ahora, deberías tener un

    Warning: You have uncommitted modifications to Homebrew
    

    que puede ser resuelto por

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

    como lo sugirió el propio Dr.Brew. El comando oculta las modificaciones no confirmadas para que pueda volver y recuperarlas si es necesario. Parecía más seguro que git reset --hard origin/masterpara mí.

  4. Si lo desea, consulte la guía oficial de solución de problemas si los pasos sugeridos aquí y por otros usuarios de SO no resuelven su problema.


cd / usr / local / Library && git stash && git clean -d -f y luego brew update lo arreglaron para mí
at0mzk

0

Respuesta similar, pero si tiene archivos que ya no se rastrean, necesita un paso adicional, por lo que debe /usr/localejecutarse

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

0

Este enfoque puede ser más simple que algunos. Implica:

  • solucionando un problema de git para que pueda delegar la administración de los cambios nuevamente.
  • sin movimientos manuales de archivos o directorios.
  • sin ajustes manuales de los permisos de archivo o directorio.

Pasos (con notas para aquellos que quieren explicaciones):

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 

Descripción general:
Por lo que puedo decir, la causa real de este problema es un cambio en la URL del repositorio. Es ahora brewy fue brew.git. (URL completa y actualizada: https://github.com/Homebrew/brew )

Nota 1: este primer comando lo lleva desde cualquier lugar de su estructura de archivos al directorio correcto. La estructura del directorio es diferente para mí de lo que otros muestran arriba (Mac OS 10.11.16), pero con este comando, esas diferencias no deberían importar.

Nota 2: este segundo comando agrega la URL remota correcta a un nuevo alias; Lo hice por si este enfoque no lograba lo que quería y necesitaba la dirección anterior nuevamente. Dado que el nuevo control remoto funcionó, invitaré a otra persona a comentar simplemente cambiando la URL con alias por origen. Felizmente actualizaré la respuesta para reflejar lo que funcionó para usted.

Nota 3: Este cuarto comando tiene exactamente el resultado deseado: informa una gran cantidad de actualizaciones, incluido el informe particularmente bueno de "==> Migrado HOMEBREW_REPOSITORY a / usr / local / Homebrew!" (énfasis suyo).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.