git - sobrescritos - brew update: la siguiente fusión sobrescribiría los siguientes archivos del árbol de trabajo sin seguimiento:
git tag commits (5)
Intenté ejecutar brew update
y recibo un error sobre mis cambios locales que se perderían si los fusionara. Intenté realizar 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
Este enfoque puede ser más simple que algunos. Implica:
- solucionando un problema de git para que pueda delegar la administración de cambios nuevamente.
- No hay movimientos manuales de archivos o directorios.
- No hay ajustes manuales de permisos de archivo o directorio.
Pasos (con notas para quienes quieran 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
Visión general:
Por lo que puedo decir, la causa real de este problema es un cambio en la url de repositorio. Ahora es brew
y fue brew.git
. (Url completo y actualizado: 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 en caso de que este enfoque no lograra lo que quería y volviera a necesitar la dirección anterior. Dado que el nuevo control remoto funcionó, invitaré a otra persona a comentar sobre el simple cambio de la dirección de alias por origen. Con gusto 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 "==> ¡HOMEBREW_REPOSITORY migrado a / usr / local / Homebrew!" (énfasis suyos).
Estoy agregando mi experiencia personal, ya que parece un poco más seguro que lo propuesto en 2012:
- Ejecutar
brew doctor
. 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, ejecute
brew doctor
nuevamente para asegurarse de que la advertencia se haya ido.Ahora, deberías tener un
Warning: You have uncommitted modifications to Homebrew
que puede ser solucionado por bey
cd /usr/local/Library && git stash && git clean -d -f
como lo sugiere el propio Dr.Brew. El comando guarda las modificaciones no confirmadas para que pueda regresar y recuperarlas si es necesario. Parecía más seguro que el
git reset --hard origin/master
para mí.Si lo desea, consulte la guía de solución de problemas oficial si los pasos sugeridos aquí y por otros usuarios de SO no resuelven su problema.
No te olvides de 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á intentando actualizar el brew, pero el brew en sí no está actualizado (es probable), hay un cambio en los permisos a través de alguna actualización del sistema operativo (también es probable), o el brew está un poco dañado (poco probable). Como brew en sí mismo es un repositorio git, debes actualizar o restablecer brew a la versión de la rama maestra. brew [por defecto] se encuentra en la carpeta /usr/local
, por lo que
- Vaya a esa carpeta [primer comando] que también debería actualizar los permisos (si no se ve a continuación)
- Busque el origen [segundo comando], lo que significa actualizar su versión LOCAL de la rama remota de brew
- Restablecimiento completo [tercer comando] basado en la rama maestra REMOTA (que también usa sus permisos actuales).
También puede chown
el 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, echa un vistazo a este artículo .
Respuesta similar, pero si tiene archivos que ya no se rastrean, necesita un paso adicional, así que desde /usr/local
run
git fetch origin
git clean -f
git reset --hard origin/master
Tuve un problema similar hace un par de semanas al intentar actualizar una instalación anterior de homebrew. Haciendo esto:
git reset --hard origin/master
en /usr/local
arreglé para mi.
Parece que otras personas también han tenido este problema. ¿Has revisado alguna de las soluciones propuestas here ?