OS X (o Xcode) viene incluido con git 1.7.algo, pero después brew install git
(1.8.0), which git
sigue devolviendo el antiguo /usr/bin/git
.
Esto es lo que obtengo cuando hago eco de $PATH ahora mismo:
/usr/local/bin:/usr/local/sbin:~/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin
¿No deberían tener prioridad las cosas caseras?
Además, no tengo idea de dónde usr/local/git/bin
viene eso al final.
Respuesta1
Entiendo. La respuesta está en tu pregunta; brew instala git en /usr/local/git/bin
(no /usr/local/bin
), pero como está después /usr/bin
en tu camino, lo obtienes primero. Mi comentario which -a git
debería haberte apuntado en esta dirección.
Respuesta2
También encontré este problema.
Después de instalar git a través de homebrew, si lo ejecuta, brew doctor
le advertirá que, como Joe mencionó anteriormente, el sistema está ejecutando el antiguo git porque su ubicación de instalación es lo primero.
Pero, en la misma advertencia, homebrew proporciona el código para solucionarlo:
$ echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile
Respuesta3
Ha sido parte de mis hábitos de Unix tener un ~/bin
directorio que coloco al comienzo de mi archivo PATH
. Este es uno de los primeros bits de mi .bashrc
:
case ":$PATH:" in
*:$HOME/bin:*) ;; # do nothing if $PATH already contains $HOME/bin
*) PATH=$HOME/bin:$PATH ;; # in every other case, add it to the front
esac
Una vez implementado esto, hacer que selectivamente solo la versión administrada por Homebrew git
tenga prioridad sobre la versión del sistema (en lugar decadaBinario administrado por Homebrew), y solo para sus sesiones de shell (en lugar detodoprogramas iniciados desde cualquier lugar, incluidos los programas GUI), es tan simple como vincularlo simbólicamente:
ln -s /usr/local/bin/git ~/bin/git