Intentar actualizar Git en Mac OS X y desinstalar el antiguo Git falla

Intentar actualizar Git en Mac OS X y desinstalar el antiguo Git falla

Estoy intentando actualizar git en mi Mac OS X 10.8.5 (Mountain Lion).

Descargué esta nueva versión deeste enlace, hice doble clic en .dmgy luego lo arrastré uninstall.sha mi terminal (siguiendo las instruccionesallá) para desinstalar la versión anterior y obtengo:

Git doesn't appear to be installed via this installer.  Aborting

Tenga en cuenta que gitactualmente está instalado en mi computadora.

$ git --version
git version 1.7.9.6 (Apple Git-31.1)
$ which git
/usr/bin/git 

¿Por qué no puedo desinstalar? ¿Cómo puedo actualizar git?

Respuesta1

En una Mac, la forma más sencilla es utilizarcerveza casera.

  1. instalar cerveza
  2. Siga las instrucciones ( brew doctorle indicará que actualice su $PATHcon/usr/local/bin:$PATH
  3. brew install git

Y deja de preocuparte por las actualizaciones manuales, simplemente ejecútalas brew update && brew upgradede vez en cuando

Por qué no puedes instalar el existente:

  • Apple tiene una instalación de git predeterminada que usa Xcode (suponiendo que instaló Xcode o al menos las utilidades de línea de comando)

Respuesta2

Respuesta más corta.

No es necesario desinstalar el Xcode gitque estás viendo en Mac OS X. Simplemente agrégalo /usr/local/git/bineditando $PATHpara ~/.bash_profileagregar algo export PATHcomo este:

export PATH="/usr/local/git/bin:$PATH"

Luego cierre y guarde ese archivo y cárguelo en su sesión de Terminal escribiendo esto:

source ~/.bash_profile

gitY podrá acceder al Xcode recién instalado con preferencia al Xcode instalado gitque ya tiene.

Respuesta más larga.

Interpretación del mensaje de error.

El problema se puede entender mirando el contenido del uninstall.shscript Bash que viene conel paquete de instalación oficial de Git para Mac OS Xpara ver exactamente lo que hace. Aquí está el fragmento cerca de la parte superior que arroja el error que estás viendo:

#!/bin/bash
if [ ! -r "/usr/local/git" ]; then
  echo "Git doesn't appear to be installed via this installer.  Aborting"
  exit 1
fi

Tenga en cuenta la línea if [ ! -r "/usr/local/git" ]; then, el script Bash está comprobando la existencia de esta ruta de directorio:

/usr/local/git/

Pero cuando ejecutaste which gitla ruta del directorio de ruta que obtuviste fue:

/usr/bin/ 

Eso indica que el instalador oficial instala gitsus elementos en /usr/local/git/y no en el directorio principal de Mac OS X de /usr/bin/.

Entonces, ¿cuál es esa otra versión que gitya tienes? Revisemos el resultado de git --versionpara más detalles:

$ git --version
git version 1.7.9.6 (Apple Git-31.1)

¿Ves eso (Apple Git-31.1)? Eso indica que fue instalado por Apple. Y como gitno forma parte de la configuración principal de Mac OS X, la única forma de instalarlo fue a través de Xcode y los binarios de línea de comandos relacionados.

En resumen, no puedes (y no debes) intentar desinstalar la versión Xcode de git. En su lugar, desea que su Terminal prefiera los gitbinarios instalados en /usr/local/git/bin/lugar de los binarios principales de Mac OS X en /usr/bin/. Y puede hacer esto modificando su $PATHconfiguración de ~/.bash_profileesta manera.

Solucionando el problema.

Primero, ábrelo ~/.bash_profileen un editor de texto. Prefiero hacer esto directamente en la línea de comando usando nanoasí:

nano ~/.bash_profile

Ahora, si no export $PATHexiste nada en eso ~/.bash_profile, simplemente agregue una $PATHlínea como esta al archivo:

export PATH="/usr/local/git/bin:$PATH"

Si export $PATHexiste un allí, haga una modificación a ese valor para llegar /usr/local/git/bina estar antes del principal $PATHdel sistema. Tenga en cuenta el :delimitador.

Ahora cierre y guarde ese archivo y cárguelo en su sesión de Terminal escribiendo esto:

source ~/.bash_profile

Ahora si escribes:

which git

La salida debería ser:

/usr/local/git/bin/git

Lo que significa que su Terminal $PATHahora se registrará /usr/local/git/bin/antes de pasar a verificar otros directorios en sus $PATHvalores predeterminados para el gitbinario.

Entonces, sin desinstalar la versión de Xcode, gitahora puede descargar e instalar el gitbinario oficial (y actualizado) y usarlo sin tener que lidiar con Homebrew ni nada más. Por ejemplo, en mi sistema, la salida actual git --versiones la siguiente:

git version 2.5.3

No (Apple Git-31.1)a la vista. Solo un gitnúmero de versión puro, actualizado y listo para usar gracias a este $PATHajuste.

Respuesta3

Tenerlo gitinstalado simplemente no es suficiente. Recuerde también que eso gitsolo funcionará si está cden una carpeta de repositorio de git funcional. Esto significa que debería ver una ./.gitcarpeta (sugerencia: úsela ls -lapara ver carpetas ocultas) y git statusdebería devolver algo similar al siguiente ejemplo:

[some_repo]$ git status
On branch master
Your branch is up-to-date with 'origin/prod'.
nothing to commit, working directory clean

pero si la carpeta no es un repositorio de git válido, verás algo como esto:

[~]$ git status
fatal: Not a git repository (or any of the parent directories): .git

información relacionada