¿Cómo usar el git instalado de Homebrew en Mac?

He instalado la versión más reciente de git (1.8.3) usando homebrew pero cuando escribo

git --version 

en mi terminal, imprime:

git version 1.7.10.2 (Apple Git-33) 

¿Qué debo hacer para reemplazar la versión anterior de git por la nueva?

Comentarios

  • Tienes un par de buenas respuestas, así que quería comentar la pregunta. ¿Está buscando instrucciones explícitas para instalar git desde la fuente desde homebrew o un cliente GUI o simplemente una confirmación de que OS X incluye varias versiones de git con el sistema operativo principal? opensource.apple.com/source/Git (FWIW – El git más nuevo que he visto ‘ Apple hasta la fecha es 1.7.12.4 que proviene de Git-37)

Responder

Gracias a todos por sus útiles respuestas. En mi caso agregando

export PATH="/usr/local/bin:${PATH}" 

en ~/.bash_profile seguido de

source ~/.bash_profile 

resolvió el problema para mi usuario.

Comentarios

  • Si desea que el cambio persista entre los usuarios, puede mover /usr/local/bin arriba /usr/bin en /etc/paths.
  • Esta es la solución propuesta por Homebrew al ejecutar brew doctor para diagnosticar el problema
  • esta respuesta debe actualizarse con la solución propuesta por KevinT de definir /etc/paths. Definir solo la » export » puede no ser suficiente, si /usr/bin tiene » precedence » sobre /usr/local/bin (de brew) …
  • Recuerde para reiniciar la terminal! ‘ no se me ocurrió hasta que vi el comentario de Juan Diego Gonzales ‘ a continuación
  • @Souleiman: Reiniciar isn ‘ t necesario. source ~/.bash_profile volverá a leer eso. Reiniciar es probablemente más rápido / más fácil. 🙂

Respuesta

Estado 2020

Todos los trucos mencionados aquí en varias respuestas ya no son necesarios en macOS Sierra, Mojave & Catalina con la última versión de Homebrew. Olvídese de export PATH="..." y las modificaciones a ~/.bash_profile.

Simplemente haga

brew install git 

y ya está.

Para confirmar, abra una nueva ventana / pestaña de terminal y escriba

git --version 

No olvide abrir una nueva ventana. Los terminales que estaban abiertos antes de que comenzara a install no heredarán ningún cambio.

Respuesta

Ok, estoy listo para tomar en serio scm.

$ git --version git version 1.9.5 (Apple Git-50.3) 

No, eso no es lo que quería. Yo < 3 homebrew, entonces:

$ brew install git 

¿Todo listo?

$ git --version git version 1.9.5 (Apple Git-50.3) 

¡Doh! (se rasca la cabeza)

$ which git /usr/bin/git 

Ah, el git de Apple está en / usr / bin, por lo que supera al homebrew. ¿Qué hacer?

(A) Simplemente cambie el nombre del binario de Apple

(B) Deje que uno administrado por homebrew tenga prioridad:

[editar PATH export eg en ~ / .zshrc (oh-my-zsh + iTerm2 FTW! / tangent)]

[específicamente: mover / usr / local / bin / git: antes de / usr / bin:]

… y / o (por ejemplo, para permitir que las cosas caseras triunfen sobre las instalaciones del sistema, y que la prioridad se aplique a todos los shells y usuarios) también edite el archivo / etc / routes, [moviendo / usr / local / bin arriba / usr / bin]

Pero asumiendo solo el enfoque más simple / menos invasivo:

$ sudo mv /usr/bin/git /usr/bin/git-apple 

¿Funcionó?

$ which git /usr/local/bin/git 

Hasta ahora todo bien, ahora es el momento de la verdad:

$ git --version git version 2.2.1 

w00t! 🙂 ¡Es hora de leer http://git-scm.com ! 🙂

Comentarios

  • PS Rel a comentarios sobre los riesgos de editar / usr / bin: IMHO it ‘ s NBD. (Aunque me gusta Global nomad ‘ s sugg. To do » sudo ln -s / usr / local / bin / git / usr / bin / git » … lo que garantiza que todo lo que llame a » / usr / bin / git » obtendrá explícitamente su sistema gestionado por brew. Pero mi opinión es que la instalación de git implica que ‘ está tomando posesión de git en su sistema. , versión alternativa de git, puede estar fuera de lugar. Recomiendo mantenerse actualizado con las versiones de git (por seguridad, no solo por funciones) y administrarlo usted mismo. Homebrew lo hace fácil. /$0.02
  • Esto no ‘ No me funciona, para deshacerlo, simplemente haz lo siguiente: sudo mv / usr / bin / git-apple / usr / bin / git. Juan Diego Gonzales funcionó. (Básicamente, siga la respuesta aceptada y luego reinicie el terminal).
  • Incluso con which git apuntando a /usr/local/bin/git, esto no fue ‘ No funciona para mí. Para resolver esto, tuve que desinstalar la aplicación GitHub para Mac.
  • MacOS 10.12.5: sudo mv /usr/bin/git /usr/bin/git-apple mv: rename /usr/bin/git to /usr/bin/git-apple: Operation not permitted
  • Simplemente use brew doctor. En 2020, recomendó brew link —overwrite git

Responder

Una vez que «he instalado la última versión de git a través de brew (brew install git), ejecute este resumen (como lo sugiere brew doctor) si no lo es ya está ahí:

echo "export PATH=/usr/local/bin:$PATH" >> ~/.bash_profile 

Luego salga de Terminal y ábralo de nuevo (reinicia tu sesión de bash). Debe hacer esto incluso si su PATH ya era correcta, ya que ZSH y Bash almacenan en caché el contenido de PATH (consulte la documentación sobre el comando incorporado hash).

Eso debería arreglar las cosas muy rápido.

Comentarios

  • ¿En qué se diferencia de la respuesta aceptada?
  • En En mi caso, ‘ no sabía que tenía que reiniciar Terminal, así que esa parte puede ayudar a algunas personas. Es más rápido que el aceptado debido al revestimiento único. Si ‘ es una competencia, creo que mi respuesta está fuera de lugar. De lo contrario, creo que contribuye. (Dime si quieres que haga una edición en lugar de esto).
  • Haz esa línea cuando instalas Homebrew
  • Encontré esta respuesta útil. Reiniciar la terminal no es un problema obvio para muchas personas que no están familiarizadas con el funcionamiento de .bash_profile, y un suave recordatorio para el resto de nosotros.
  • @JuanDiegoGonzales ¡Excelente observación! Me preguntaba exactamente lo mismo después de instalar git y no ‘ no sabía por qué. Después de la sugerencia de caché , investigué un poco más: unix.stackexchange.com/q/5609/52921

Respuesta

Intenté esto y me funciona.

brew link --overwrite git 

Comentarios

  • Me funcionó en Mojave (10.14.4)

Respuesta

Cuando escribe

git --version 

en Terminal.app o consola, su comentario sobre otra pregunta indica la versión devuelve es el git en / usr / bin / git

Si instaló Xcode 4.5 (y más reciente), y escriba

xcrun git --version 

en Terminal.app o consola, la versión que devuelve es el git en el paquete de la aplicación Xcode.

Si está usando Homebrew para instalar y actualizar git, la solución más simple es

  1. asegúrese de tener derechos de administrador, ya que se le pedirá la contraseña del administrador
  2. cambie el nombre de la ubicación original cambiándola con mv. Por ejemplo

    sudo mv / usr / bin / git / usr / bin / git-ORIGINAL

  3. cree un enlace suave usando «ln -s» al binario git que instaló con Homebrew .

Tenga en cuenta que MattDMo tiene una mejor solución en los comentarios.

Comentarios

  • ¿Es esto 100% seguro? ¿Romperá algo relacionado con mac?
  • Si sigue los pasos descritos, la solución ‘ no romperá nada preinstalado, ya que esos ejecutables git no se eliminan. Es por eso que en el paso 2 debe cambiar el nombre de su / usr / bin / git original por ej. como /usr/bin/git.BACKUP
  • Por favor, no ‘ no hagas esto – realmente no deberías ‘ t estar jugando con /usr/bin, ya que ‘ es posible que otros programas no ‘ Ni siquiera sé sobre depender de los caprichos asociados con una versión en particular. La solución más sencilla, sin mover nada, es agregar /usr/local/bin a su $PATH variable de entorno antes de /usr/bin – IIRC, homebrew se instala en /usr/local/bin
  • Gracias @MattDMo, ese parece ser el mejor enfoque en este caso.

Respuesta

Instale git con brew, luego ejecute esto.

brew link --force git

Cierre y vuelva a abrir la terminal para ejecutar which git.

Comentarios

  • ¿Cómo cambia eso la ruta predeterminada?
  • Esto me funcionó para anular xcode ‘ s git.
  • Recibí un error al ejecutar esto pero brew link --overwrite git funcionó

Respuesta

Tienes que cambiar el nombre el git original de apple en /usr/bin/ a e. gramo. git-org ya que /usr/bin está normalmente antes de /usr/local/bin en su directorio de ruta donde están las cosas de preparación.

Entonces:

cd /usr/bin sudo mv git git-org 

y no olvides vincular el brew git

brew link git 

Esto asume que /usr/local/bin está en su $PATH variable de entorno.Si aún tiene problemas, intente ejecutar

brew doctor 

y solucione los problemas mencionados allí.

Comentarios

  • No cambie el nombre ni cambie las cosas en / usr / bin, ya que podría romper las cosas de Apple y se cambiarán cuando actualice el sistema o XCode. usa la ruta para la que está diseñado,
  • @Mark tienes razón. Pero no creo que tenga problemas si cambia solo git en / usr / bin. Para mí, está funcionando durante varios meses.
  • Estoy de acuerdo en que normalmente cambiar las cosas en / usr / bin es una mala noticia, pero no puedo ‘ recordar el sistema operativo X usa realmente git, por lo que el daño puede ser minúsculo y solo se relaciona con un sistema » limpio » que coincide con los recibos. El daño sería que una actualización de OS X podría reemplazar el nuevo git con una versión anterior, de ahí la práctica normal de ubicar un nuevo binario fuera de la ubicación de la ruta del sistema.
  • Creo que sería mucho más fácil agregar /usr/local/bin (homebrew ‘ s directorio de instalación, IIRC) al $PATH antes de /usr/bin en lugar de perder el tiempo con el cambio de nombre y la copia de seguridad, etc.

Responder

Si está instalando git desde git-scm.com directamente y desea utilizar la última versión descargada de git en lugar de la versión de apple (antigua) de git.

  1. Instale git desde git-scm .com
  2. Lo más probable es que el nuevo git se instale en /usr/local/bin/git
  3. Pruebe git --version, si devuelve la versión anterior de Apple de git, proceda a continuación
  4. cd ~ (cambie el directorio a su directorio de inicio)
  5. escriba vi .bashrc
  6. Utilice i (para insertar texto en el editor vi)
  7. Si encuentra una línea con export PATH......., presione enter en la parte superior de la exportación y escriba lo siguiente: export PATH=/usr/local/:$PATH (Tenga mucho cuidado con la variable PATH no lo estropee, de lo contrario causará problemas a su sistema operativo) (con suerte el nuevo git debe instalarse en /usr/local/git)
  8. Presione esc
  9. Ingrese :wq (para guarde el archivo .bashrc)
  10. Salga de la terminal e inicie una nueva terminal
  11. Ahora intente git --version (debería ver una nueva versión)

Responder

Haga un alias simple para evitar cambiar la ruta:

alias git=/usr/local/bin/git 

Responder

«He intentado muchas cosas, incluida toda esta publicación» s respuestas. Finalmente pude hacer que se ejecutara la versión brew de git en lugar de Xcode simplemente eliminando la carpeta de herramientas adicionales de Xcode:

sudo rm -rf /Library/Developer/CommandLineTools

Respuesta

Cuando use brew install git para la instalación, observe que instala git en:

 ==> Summary 🍺 /usr/local/Cellar/git/2.29.2: 1,480 files, 39.7MB  

Lo hará también aparece un error, que aparece antes en el registro y probablemente se lo pasó por alto:

 ==> Downloading https://homebrew.bintray.com/bottles/git-2.29.2.big_sur.bottle.t Already downloaded: /Users/chadjinik/Library/Caches/Homebrew/downloads/08165d120fcebc7823c487a6778b2ea0e67fd2cd9177d6e7d656268f474ab5da--git-2.29.2.big_sur.bottle.tar.gz ==> Pouring git-2.29.2.big_sur.bottle.tar.gz Error: The `brew link` step did not complete successfully The formula built, but is not symlinked into /usr/local Could not symlink bin/git Target /usr/local/bin/git already exists. You may want to remove it: rm "/usr/local/bin/git" To force the link and overwrite all conflicting files: brew link --overwrite git  

Simplemente ejecute:

 brew link --overwrite git  

y debería estar bien.

Respuesta

Depende de dónde venga tu git. Xcode trae una versión, por ejemplo, tal vez sea por adelantado en tu ruta.

Tal vez escribiendo

which git 

se mostrará dónde está el anterior.

Comentarios

  • it ‘ s en /usr/bin/git
  • Parecen dos instalaciones. Creo que la versión normal (descargable) de git va a / usr / local / git / … Es ‘ s luego una cuestión de agregar eso a la ruta o eliminar el otro (o ambos)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *