Tienes un par de buenas respuestas, así que quería comentar sobre la pregunta. ¿Está buscando instrucciones explícitas para instalar git desde la fuente de homebrew o un cliente GUI o simplemente confirma que OS X incluye varias versiones de git con el sistema operativo central? opensource.apple.com/source/Git (FWIW - El git más nuevo que he visto el paquete de Apple hasta la fecha es 1.7.12.4 que viene de Git-37)
bmike
Respuestas:
106
Gracias a todos por las respuestas útiles. En mi caso agregando
Si desea que el cambio persistente en los usuarios, puede pasar /usr/local/binpor encima /usr/binde /etc/paths.
Kevin
3
Esta es la solución propuesta por Homebrew cuando se ejecuta brew doctorpara diagnosticar el problema
VoxPelli
1
esta respuesta debe actualizarse con la solución de definición propuesta por KevinT /etc/paths. Definir solo la "exportación" puede no ser suficiente, si /usr/bintiene "prioridad" sobre /usr/local/bin(del brew) ...
emgsilva
8
¡Recuerde reiniciar el terminal! No se me ocurrió hasta que vi el comentario de Juan Diego Gonzales a continuación
Souleiman
2
@Souleiman: no es necesario reiniciar. source ~/.bash_profilevolverá a leer eso. Reiniciar es probablemente más rápido / más fácil. :)
44
Ok, estoy listo para tomarme en serio la ciencia ficción.
$ git --version
git version 1.9.5 (Apple Git-50.3)
No, eso no es lo que quería. I <3 homebrew, entonces:
$ brew install git
¿Todo listo?
$ git --version
git version 1.9.5 (Apple Git-50.3)
Doh! (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 exportar, por ejemplo, en ~ / .zshrc (oh-my-zsh + iTerm2 FTW! / tangent)]
[específicamente: move / usr / local / bin / git: before / usr / bin:]
... y / o (por ejemplo, para permitir más ampliamente que las cosas de homebrew triunfen en las instalaciones del sistema y que la prioridad se aplique a todos los shells y usuarios) también edite el archivo / etc / path, [moving / usr / local / bin encima / usr / bin ]
Pero suponiendo 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 el momento de la verdad:
PS Rel a los comentarios sobre los riesgos de edición / usr / bin: en mi humilde opinión es NBD. (Aunque me gusta la sugerencia de Global Nomad de hacer "sudo ln -s / usr / local / bin / git / usr / bin / git" ... lo que garantiza que cualquier cosa que llame a "/ usr / bin / git" explícitamente obtendrá la tuya es administrada por brew. Pero mi opinión es que la instalación de git implica que estás tomando posesión de git en tu sistema. Las preocupaciones sobre procesos desconocidos que usan una versión alternativa más antigua de git, podrían estar fuera de lugar. Recomiendo mantenerte actualizado con versiones Git (por seguridad, no sólo cuenta), y la gestión de usted mismo Homebrew lo hace fácil /$0.02..
cweekly
Esto no funcionó para mí, para deshacerlo, solo haga: sudo mv / usr / bin / git-apple / usr / bin / git. El comentario de Juan Diego Gonzales funcionó. (básicamente, siga la respuesta aceptada y luego reinicie el terminal).
Souleiman
Incluso which gitseñalando /usr/local/bin/git, esto no funcionó para mí. Para resolver esto, tuve que desinstalar la aplicación GitHub Mac.
Ben
2
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
Vladislav Rastrusny
En estos días parece que homebrew se coloca en el "frente" de la RUTA, así que espero que ya no sea necesario :)
rogerdpack
32
Estado 2019
Todos los trucos mencionados aquí en varias respuestas ya no son necesarios en macOS Sierra & Mojave con el último Homebrew. Olvídate export PATH="..."y modificaciones a ~/.bash_profile.
Simplemente lo haces
brew install git
y listo
Para confirmar, abra una nueva ventana de terminal (!) Y escriba
Luego salga de Terminal y ábralo nuevamente (reinicie su sesión bash). Debe hacer esto incluso si su RUTA ya era correcta, ya que ZSH y Bash almacenan en caché el contenido de RUTA (consulte la documentación sobre el comando incorporado hash).
En mi caso, no sabía que tenía que reiniciar Terminal, por lo que esa parte puede ayudar a algunas personas. Es más rápido de lo 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).
Juan Diego Gonzales
Haces ese único revestimiento cuando instalas Homebrew
user151019
77
Encontré esta respuesta útil. Reiniciar el terminal es un problema no obvio para muchas personas que no están familiarizadas con el funcionamiento de .bash_profile, y un recordatorio amable para el resto de nosotros.
Magne
@JuanDiegoGonzales Excelente observación! Me preguntaba exactamente lo mismo después de instalar git y no sabía por qué. Después de la sugerencia de caché , investigué un poco más: unix.stackexchange.com/q/5609/52921
kstratis
4
Cuando escribes
git --version
en Terminal.app o consola, su comentario sobre otra pregunta indica que la versión que 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á utilizando Homebrew para instalar y actualizar git, la solución más simple es
asegúrese de tener derechos de administrador ya que se le pedirá la contraseña para el administrador
cambie el nombre de la ubicación original renombrándola usando mv. Por ejemplo
sudo mv / usr / bin / git / usr / bin / git-ORIGINAL
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.
¿Es esto 100% seguro? ¿Romperá algo relacionado con Mac?
Levani
Si sigue los pasos descritos, la solución no romperá nada preinstalado ya que esos ejecutables de git no se eliminan. Es por eso que en el paso 2 debe cambiar el nombre de su / usr / bin / git original, por ejemplo, como /usr/bin/git.BACKUP
Global nomad
10
Por favor, no hagas esto, realmente no deberías estar jugando /usr/bin, ya que es posible que otros programas que ni siquiera conoces dependan de los caprichos asociados con una versión en particular. La solución más fácil, sin mover nada, es agregar /usr/local/bina su $PATHvariable de entorno antes /usr/bin- IIRC, homebrew se instala en/usr/local/bin
MattDMo
Gracias @MattDMo, ese parece ser el mejor enfoque en este caso.
Debe cambiar el nombre del git original por apple en, /usr/bin/por ejemplo, git-org, ya /usr/binque normalmente está antes /usr/local/binen su directorio de ruta donde está el material de preparación.
Entonces:
cd /usr/bin
sudo mv git git-org
y no olvides vincular el brew git
brew link git
Esto supone que /usr/local/binestá en su $PATHvariable de entorno. Si aún tiene problemas, intente ejecutar
No cambie el nombre o cambie las cosas en / usr / bin ya que podría romper las aplicaciones de Apple y se dañarán cuando realice una actualización del sistema o XCode. use la ruta para la que está diseñada,
user151019
@ Mark tienes un punto. Pero no creo que tenga problemas si cambia solo git en / usr / bin. Para mí está funcionando durante varios meses.
Pfitz
Estoy de acuerdo en que normalmente cambiar las cosas en / usr / bin es una mala noticia, pero no puedo recordar que OS X realmente use 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.
bmike
3
Creo que sería mucho más fácil agregar /usr/local/bin(directorio de instalación de homebrew, IIRC) al $PATHfrente en /usr/binlugar de perder el tiempo con el cambio de nombre y la copia de seguridad, etc.
MattDMo
1
Instale git con brew, ejecute esto.
brew link --force git
Cierre y vuelva a abrir la terminal para ejecutar which git.
Esto funcionó para mí para anular el git de xcode.
surjikal
Recibí un error al ejecutar esto, pero brew link --overwrite gitfuncionó
wickdninja
0
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.
Instale git desde git-scm.com
Lo más probable es que se instale git nuevo en /usr/local/bin/git
Intente git --version, si devuelve la versión anterior de Apple de git, continúe a continuación
cd ~ (cambie el directorio a su directorio de inicio)
tipo vi .bashrc
Usar i(para insertar texto en el editor vi)
Si encuentra una línea con export PATH......., presione Intro en la parte superior de la exportación y escriba lo siguiente: export PATH=/usr/local/:$PATH(Tenga mucho cuidado con la PATHvariable, no la estropee, de lo contrario causará problemas para su sistema operativo) (con suerte, se debe instalar un nuevo git /usr/local/git)
Presione esc
Ingrese :wq(para guardar el .bashrcarchivo)
Salga de la terminal e inicie una nueva terminal
Ahora intente git --version(debería ver una nueva versión)
Eso parece dos instalaciones. Creo que la versión normal (descargable) de git va a / usr / local / git / ... Entonces se trata de agregar eso a la ruta o eliminar el otro (o ambos)
Nicholaz
-2
Para actualizar cualquier cosa usando Homebrew en OSX que implique compilación usando gcc, asegúrese de tener las herramientas de línea de comandos actualizadas de Xcode; sí, lo sé, apesta tener que ocultar una herramienta de todo el sistema en las preferencias de una aplicación.
Pasos
Vaya a Xcode.app -> Preferencias -> Descargas
Actualizar (o instalar) herramientas de línea de comandos
Ejecute brew doctory repare todos los demás obstáculos
Ejecutar brew upgradepara actualizar todos los paquetes a la vez
Respuestas:
Gracias a todos por las respuestas útiles. En mi caso agregando
en
~/.bash_profile
seguido deresuelto el problema para mi usuario.
fuente
/usr/local/bin
por encima/usr/bin
de/etc/paths
.brew doctor
para diagnosticar el problema/etc/paths
. Definir solo la "exportación" puede no ser suficiente, si/usr/bin
tiene "prioridad" sobre/usr/local/bin
(del brew) ...source ~/.bash_profile
volverá a leer eso. Reiniciar es probablemente más rápido / más fácil. :)Ok, estoy listo para tomarme en serio la ciencia ficción.
No, eso no es lo que quería. I <3 homebrew, entonces:
¿Todo listo?
Doh! (rasca la cabeza)
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 exportar, por ejemplo, en ~ / .zshrc (oh-my-zsh + iTerm2 FTW! / tangent)]
[específicamente: move / usr / local / bin / git: before / usr / bin:]
... y / o (por ejemplo, para permitir más ampliamente que las cosas de homebrew triunfen en las instalaciones del sistema y que la prioridad se aplique a todos los shells y usuarios) también edite el archivo / etc / path, [moving / usr / local / bin encima / usr / bin ]
Pero suponiendo solo el enfoque más simple / menos invasivo:
¿Funcionó?
Hasta ahora todo bien, ahora el momento de la verdad:
w00t! :) ¡Es hora de ir a leer http://git-scm.com ! :)
fuente
which git
señalando/usr/local/bin/git
, esto no funcionó para mí. Para resolver esto, tuve que desinstalar la aplicación GitHub Mac.sudo mv /usr/bin/git /usr/bin/git-apple mv: rename /usr/bin/git to /usr/bin/git-apple: Operation not permitted
Estado 2019
Todos los trucos mencionados aquí en varias respuestas ya no son necesarios en macOS Sierra & Mojave con el último Homebrew. Olvídate
export PATH="..."
y modificaciones a~/.bash_profile
.Simplemente lo haces
y listo
Para confirmar, abra una nueva ventana de terminal (!) Y escriba
fuente
brew link --overwrite git
funcionó para míUna vez que haya instalado el último git a través de brew (
brew install git
), ejecute esta línea (como lo sugierebrew doctor
) si aún no está allí:Luego salga de Terminal y ábralo nuevamente (reinicie su sesión bash). Debe hacer esto incluso si su RUTA ya era correcta, ya que ZSH y Bash almacenan en caché el contenido de RUTA (consulte la documentación sobre el comando incorporado
hash
).Eso debería arreglar las cosas muy rápido.
fuente
Cuando escribes
en Terminal.app o consola, su comentario sobre otra pregunta indica que la versión que devuelve es el git en / usr / bin / git
Si instaló Xcode 4.5 (y más reciente), y escriba
en Terminal.app o consola, la versión que devuelve es el git en el paquete de la aplicación Xcode.
Si está utilizando Homebrew para instalar y actualizar git, la solución más simple es
cambie el nombre de la ubicación original renombrándola usando mv. Por ejemplo
sudo mv / usr / bin / git / usr / bin / git-ORIGINAL
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.
fuente
/usr/bin
, ya que es posible que otros programas que ni siquiera conoces dependan de los caprichos asociados con una versión en particular. La solución más fácil, sin mover nada, es agregar/usr/local/bin
a su$PATH
variable de entorno antes/usr/bin
- IIRC, homebrew se instala en/usr/local/bin
Intenté esto y me funciona.
fuente
Debe cambiar el nombre del git original por apple en,
/usr/bin/
por ejemplo, git-org, ya/usr/bin
que normalmente está antes/usr/local/bin
en su directorio de ruta donde está el material de preparación.Entonces:
y no olvides vincular el brew git
Esto supone que
/usr/local/bin
está en su$PATH
variable de entorno. Si aún tiene problemas, intente ejecutary solucionar los problemas mencionados allí.
fuente
/usr/local/bin
(directorio de instalación de homebrew, IIRC) al$PATH
frente en/usr/bin
lugar de perder el tiempo con el cambio de nombre y la copia de seguridad, etc.Instale git con brew, ejecute esto.
brew link --force git
Cierre y vuelva a abrir la terminal para ejecutar
which git
.fuente
brew link --overwrite git
funcionó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.
/usr/local/bin/git
git --version
, si devuelve la versión anterior de Apple de git, continúe a continuacióncd ~
(cambie el directorio a su directorio de inicio)vi .bashrc
i
(para insertar texto en el editor vi)export PATH.......
, presione Intro en la parte superior de la exportación y escriba lo siguiente:export PATH=/usr/local/:$PATH
(Tenga mucho cuidado con laPATH
variable, no la estropee, de lo contrario causará problemas para su sistema operativo) (con suerte, se debe instalar un nuevo git/usr/local/git
):wq
(para guardar el.bashrc
archivo)git --version
(debería ver una nueva versión)fuente
Depende de dónde provenga tu git. Xcode trae una versión, por ejemplo, tal vez eso sea por adelantado en su camino.
Tal vez escribiendo
mostrará dónde está el viejo.
fuente
/usr/bin/git
...Para actualizar cualquier cosa usando Homebrew en OSX que implique compilación usando gcc, asegúrese de tener las herramientas de línea de comandos actualizadas de Xcode; sí, lo sé, apesta tener que ocultar una herramienta de todo el sistema en las preferencias de una aplicación.
Pasos
brew doctor
y repare todos los demás obstáculosbrew upgrade
para actualizar todos los paquetes a la vezfuente