No se puede usar git instalado homebrew

16

Me encuentro con un problema realmente extraño cuando intento usar la última versión de git que acabo de instalar a través de homebrew. which gitme está señalando la instalación de homebrew, pero al llamar gitdevuelve la versión original instalada con OS X.

Revisé primero para ver la versión original en la que estaba.

[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)

Luego fui a homebrew para instalar la última versión.

[user@home ~]$ brew install git
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/git-2.0.0.mavericks.bottle.2.tar.gz
######################################################################## 100.0%
==> Pouring git-2.0.0.mavericks.bottle.2.tar.gz
==> Caveats
The OS X keychain credential helper has been installed to:
  /usr/local/bin/git-credential-osxkeychain

The 'contrib' directory has been installed to:
  /usr/local/share/git-core/contrib

Bash completion has been installed to:
  /usr/local/etc/bash_completion.d

zsh completion has been installed to:
  /usr/local/share/zsh/site-functions
==> Summary
🍺  /usr/local/Cellar/git/2.0.0: 1324 files, 31M

Parece que funcionó! Comprueba que está apuntando al git correcto

[user@home ~]$ which git
/usr/local/bin/git

Debería ser bueno, ¿verdad? No tan rapido

[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)

Eso es raro. ¿Estoy realmente apuntando al git correcto?

[user@home ~]$ ls -l /usr/local/bin/git
lrwxr-xr-x  1 user  group  27 Jul  3 15:54 /usr/local/bin/git -> ../Cellar/git/2.0.0/bin/git

Claro que lo parece. Funciona cuando lo llamo manualmente

[user@home ~]$ /usr/local/Cellar/git/2.0.0/bin/git --version
git version 2.0.0

Pero no como git

[user@home ~]$ which git
/usr/local/bin/git
[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)

¿Alguna idea de lo que podría estar causando esto?

EDITAR: resuelto. source .bashrcarreglado. Todavía whichtengo curiosidad por saber por qué me devolvería el ejecutable correcto, pero no se llamaría, si alguien puede explicar eso.

Matt Stone
fuente
No estoy seguro de cuál es exactamente el problema, pero parece que es posible que desee ver el valor actual de $PATH.
Zev Eisenberg
3
si quieres ver todas las versiones de git que has instalado, usa -> which -a git - (which git, solo te devuelve la ruta de acceso de la primera en tu variable PATH) para ver qué rutas tienes en tu PATH -> echo $ PATH
konqui

Respuestas:

25

Los shells mantienen un caché de las rutas donde se encontraron los ejecutables en la $PATHvariable. Por lo tanto, se almacenó /usr/bin/giten caché en lugar de /usr/local/bin/git, porque este último no existía cuando comenzó su shell. Ejecutar hash -ren Bash desde su terminal actual borrará este caché, entonces la primera instancia encontrada en $PATHdebería ser la que se ejecuta.

realgeek
fuente
hash -rfuncionó para mí
metal gear solid
5

Tengo exactamente el mismo problema. Aquí está mi solución.

brew uninstall git
# make sure everything is alright, maybe brew will give you some hint
brew doctor
brew update  
brew install git
# magic happen, brew will give you hint /usr/bin occurs before /usr/local/bin
# and recommend you run following command
brew doctor
echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile

Una vez que haya terminado, no podrá ver ningún cambio cuando ejecute git --version. Simplemente cierre sesión y vuelva a iniciarla, vuelva a ejecutar git --version.

Colmillo
fuente
77
Abrir una nueva ventana de Terminal es suficiente. Alternativamente, uno también podría llamar source ~/.bash_profile.
Daniel B
Estos pasos fueron exactamente lo que necesitaba, y me ayudaron a configurar mi sistema usando la última versión de git. También descubrí otra copia de git que había descargado de git-scm.com, así que ejecuté el script uninstall.sh para eliminar esa. Ahora estoy bien, ¡muchas gracias a Fang y Jens!
Michael Sheaver
Gracias por los pasos Para mí, pude usar automáticamente git --version sin ejecutar el último comando echo.
Michael Fulton
0

Tengo el mismo problema. Simplemente reinicié mi Terminal.

motor en serie
fuente
-1

Mi problema fue que tenía instalada la aplicación Mac GitHub. /usr/local/bin/gitestaba apuntando a la versión de git de la aplicación, no a la versión Homebrew. Desinstalar la aplicación GitHub me solucionó el problema.

Ben
fuente
-1

Cuando use homebrew para actualizar git en su máquina, siga los siguientes pasos:

brew doctor

Solucione los problemas sugeridos

brew update si hay una versión más nueva de homebrew disponible

brew install git para descargar e instalar la última versión de git

correr brew doctorte hará saber que

Advertencia : tiene barriles desvinculados en su bodega

la ejecución brew link gitdará como resultado el error

Error: no se pudo vincular bin / git

Target / usr / local / bin / git ya existe. Es posible que desee eliminarlo:

rm '/ usr / local / bin / git'

brew link --overwrite git para sobrescribir el enlace simbólico y señalar el git brew instalado.

Chekkan
fuente
-1

Abre tu terminal. Ingrese este comando.

sudo nano /etc/paths

Luego copie la siguiente ruta en la parte superior del archivo.

/usr/local/git/bin

Presione control + X y guarde.

Cheque git --version

Funciona para mi.

Señor pi
fuente
No hay tal archivo git/bin. Qué quiere decir bin/git? Además, no es necesario agregar esto a sus rutas, /usr/local/binya está ahí.
slhck