¿Cómo actualizar Git a la última versión en macOS?


165

Acabo de comprar una nueva Mac con OS X Lion y verifiqué en el Terminal qué versión de git está instalada por defecto. Tengo la respuesta

git --version
> git version 1.7.5.4

Me gustaría actualizar git a la última versión 1.7.8.3, así que descargué el instalador de dmg "git-1.7.8.3-intel-universal-snow-leopard.dmg" y lo lancé.

Después de la instalación, la Terminal todavía dice que la versión es 1.7.5.4. ¿Qué estoy haciendo mal?


44
Escriba which gitpara ver dónde está el binario. ¿Es ese el mismo lugar donde instaló el nuevo?
Greg Hewgill

44
Dice /usr/bin/gitpara 1.7.5.4, pero ¿cómo puedo saber dónde instaló DMG la nueva versión? ¿Por qué no actualiza / sobrescribe la versión anterior automáticamente? Si quiero usar la nueva, ¿cómo puedo vincular el gitcomando a la nueva versión? (¡gracias por tu respuesta realmente rápida por cierto!)
Nicolas Renon el

1
en mi mac (os 10.6.8) el antiguo git 1.7.5.4 vive en / usr / bin / git mientras que el nuevo instalador de git 1.7.11.3 coloca git en / usr / local /
miker el

Me pregunto si superuser.com/a/580611/74576 es un buen enfoque. Desearía poder entender los comandos para ello.
Ryan

Hice la entrada en .bash_profile en lugar de .bashrc y funcionó. Creo que si su terminal se ejecuta como "Shell de inicio de sesión predeterminado", entonces sucede.
Swapnil Chincholkar

Respuestas:


58

Probablemente sería mejor si agregaras:

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

a un archivo llamado .bashrc en su carpeta de inicio. De esta manera, cualquier otro software que pueda instalar en/usr/local/git/bin también se encontrará primero.

Para una manera fácil de hacer esto simplemente escriba:

echo "export PATH=/usr/local/git/bin:/usr/local/sbin:$PATH" >> ~/.bashrc

en la Terminal y lo hará por ti.


1
Como dice README.txt, git está instalado en / usr / local / git.
bananaaus

18
El práctico consejo de kmikael es solo para bash. (Para cambiar el shell predeterminado de Mac, desbloquee las cuentas o la ventana de "usuarios y grupos" en las preferencias del sistema, pulse la tecla Control y haga clic en "Opciones avanzadas".) Una sugerencia usando bash_profile en lugar de bashrc, por ejemplo, echo 'export PATH="/usr/local/git/bin:/usr/local/sbin:~/bin:$PATH"' >> ~/.bash_profileen moncefbelyamani.com . La discusión de si se debe añadir a .bash_profile o .bashrc está en superuser.com
miker

¿Qué usaste para instalar git? Acabo de comprobar la última versión, el instalador oficial aquí instala git /usr/local/git/bin/git, lo que significa que el método anterior aún debería funcionar en 10.8.4.
kmikael

Gracias @miker, funcionó para mí con .bash_profile, pero no con .bashrc.
adimauro

Desmarqué esta solución, incluso si funciona. Por favor lea mi actualización de mi mensaje para la explicación.
Nicolas Renon

52

Es simple si ya tiene Homebrew : suponiendo que tenga instalado Homebrew, escriba lo siguiente:

brew install git

Una vez que esté instalado, escriba las dos líneas siguientes, que establecerán nuestro camino hacia la distribución local de git en lugar de la de Apple.

export PATH=/usr/local/bin:$PATH
git --version

SI NO TIENE HOMEBREW, SIGA ESTOS PASOS Verifique la versión

$ git --version

Copia de seguridad (o eliminar) Apple git (Opcional)

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

Instala Homebrew si no tienes

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

O actualiza si ya tienes

$ brew update && brew upgrade

Instalar Git con Homebrew

$ brew install git

Enlace simbólico

$ brew link --force git

Cierre la Terminal y vuelva a abrir, luego verifique la versión

$ git --version

Deberías ver…

git version <latest version>

¡Agradable! Estamos a salvo ahora! Y la próxima vez puedes ...

$ brew update && brew upgrade


10
En cuanto a sudo mv /usr/bin/git /usr/bin/git-apple: Cambiar el nombre del sistema git no funcionará en macOS El Capitan y versiones posteriores a menos que desactive la Protección de integridad del sistema como se describe aquí apple.stackexchange.com/a/248229/16290 . Personalmente acabo de actualizar mi, PATHasí que eso /usr/local/binviene antes /usr/bin. De esa manera, el git de Homebrew siempre tiene prioridad (después de cerrar la terminal y volver a abrir). Para las vulnerabilidades de seguridad de git, Apple eventualmente actualizará git incluido con sus actualizaciones de seguridad. Mientras tanto, uno simplemente puede evitar usar el git incorporado configurando PATH como se describe.
Nate Cook,

16

Después de buscar "problemas para actualizar git en mac" en Google, leí varias publicaciones e intenté lo siguiente antes de resolver el problema completando el paso 4:

  1. Actualicé mi ruta de terminal utilizando el comando de exportación mencionado anteriormente. Cada vez que salgo del terminal y lo reinicio, cuando escribí git --versionel terminal, aún devuelve la versión anterior 1.8.

  2. Seguí las instrucciones README.txt para actualizar a la versión actual 2.0.1 que viene con el instalador .dmg y cuando reinicié el terminal, todavía no funciona.

  3. Busqué la carpeta / etc / path / como se indicó anteriormente y el directorio llamado "path" no existe en mi Mac. Estoy ejecutando OS X Mavericks versión 10.9.4.

  4. Luego recordé que tengo instalado Homebrew en mi Mac y ejecuté lo siguiente:

    brew --version
    brew update
    brew search git
    brew install git
    

Esto finalmente resolvió mi problema. Si alguien tiene alguna idea de por qué esto funcionó, se agradecería mucho más información. Probablemente tengo algunas configuraciones de ruta sobrantes en mi sistema por trabajar con Ruby el año pasado.


1
Ya había instalado git. Entonces, cuando brew install gitseguí el último paso , recibí un mensaje de error y sugirió ejecutar el brew upgrade gitcomando en su lugar. ¡Tu eres el hombre! Eso hizo simplemente el truco :)
Pathros

15

Recientemente actualicé el Git en mi máquina OS X a la última también. No .dmgutilicé lo mismo que usaste, pero cuando lo instalé se colocaron los binarios /usr/local/bin. Ahora, de la forma en que PATHestaba organizado, el directorio /usr/binaparece antes /usr/local/bin. Entonces lo que hice fue:

cd /usr/bin
mkdir git.ORIG
mv git* git.ORIG/

Esto mueve los varios programas originales nombrados git*a un nuevo subdirectorio que los mantiene fuera del camino. Después de eso, which gitmuestra que /usr/local/binse encuentra el que está adentro .

Modifique el procedimiento anterior según sea necesario para que se adapte a donde haya instalado los nuevos binarios.


2
¡Gracias! En realidad, se colocaron los nuevos binarios /usr/local/git.
Nicolas Renon

1
Nota: tuve que reiniciar Terminal para ver el nuevo git. Parece obvio pero me confundió al principio.
migg

15

si usa homebrew puede actualizar enlaces sim usando

brew link --overwrite git

Intenté todas las otras respuestas por encima de esta y esto es lo que finalmente me configuró con la última versión de git. ejecutar brew install gitme consiguió la última versión pero no configuró el enlace simbólico correctamente. ejecutar brew link gitme dio un error diciendo que no podía hacer un enlace simbólico a git porque ya existía. finalmente corriendo brew link --overwrite gitponer el clavo en el ataúd así que ahora git --versionmuestra que estoy en la versión más actualizada de git
Gharbad The Weak

7

El instalador de la página de inicio de git se instala /usr/local/gitpor defecto. Sin embargo, si instala XCode4 , instalará una versión de git en /usr/bin. Para asegurarse de que puede actualizar fácilmente desde el sitio web y usar la última versión de git, edite la información de su perfil para colocarla /usr/local/git/binantes /usr/binen $ PATH o edite /etc/pathse inserte /usr/local/git/bincomo la primera entrada.

Puede ayudar a alguien, al menos, cambiar el orden en / etc / paths funcionó para mí.



6

Usé lo siguiente para actualizar git en mac.

hansi$ brew install git 

hansi$ git --version 
git version 2.19.0


hansi$ brew install git
Warning: git 2.25.1 is already installed, it's just not linked
You can use `brew link git` to link this version.

hansi$ brew link git 
Linking /usr/local/Cellar/git/2.25.1... 
Error: 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

To list all files that would be deleted:
  brew link --overwrite --dry-run git

hansi$ brew link --overwrite git 
Linking /usr/local/Cellar/git/2.25.1... 205 symlinks created


hansi$ git --version
git version 2.25.1

en mi caso, ya tenía instalado git, y lo instalé nuevamente usando homebrew que descargó una versión más nueva, pero no estaba vinculada correctamente. Terminé necesitando desvincular manualmente, luego volver a vincular y luego funcionó. También necesitaba volver a abrir mi sesión de terminal para que encontrara la nueva versión en lugar de la versión anterior / del sistema: brew unlink git && brew link git && source ~/.bashrc
FireDragon


2

Para mantener ambas versiones, acabo de cambiar el valor de la variable de entorno PATH al colocar la ruta git de la nueva versión "/ usr / local / git / bin /" al principio, obliga a usar la versión más nueva:

$ echo $ PATH

/ usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin: / usr / local / git / bin /

$ git --version

git versión 2.4.9 (Apple Git-60)

valor original: / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin: / usr / local / git / bin /

nuevo valor: / usr / local / git / bin / : / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin

$ export PATH = / usr / local / git / bin /: / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / opt / X11 / bin

$ git --version

git versión 2.13.0


1

Sin Homebrew

  1. Use el instalador del sitio web de git.
  2. Actualiza tu ~/.bash_profilearchivo.Observe que este comando difiere de la respuesta de kmikael en lo que pone en el archivo:
    • Otro comando: export PATH=/usr/local/git/bin:/usr/local/sbin/:[and so on]
    • Debajo del comando: export PATH="/usr/local/git/bin:/usr/local/sbin:$PATH"
    • Use el que prefiera.

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

  1. Si está utilizando Xcode, deberá agregar algunos enlaces simbólicos .
    • Ejemplo: ln -s /opt/local/bin/git /usr/bin/git
  2. Reiniciar terminal.
    • which git debería decir el directorio en el README.txt archivo desde el dmg.
    • git --version debería decir la versión actualizada.
    • echo $PATH debería comenzar con /usr/local/git/bin:/usr/local/sbin:

0

Prefiero no alterar la jerarquía de rutas, sino tratar específicamente con git ... sabiendo que nunca voy a usar git viejo para hacer lo que ahora manejará git nuevo . Esta es una solución de fuerza bruta.

NOTA: Instalé XCode en Yosemite (10.10.2) limpio primero .

Luego lo instalé desde el binario disponible en git-scm.com .

$ which git
/usr/bin/git
$ cd /usr/bin
$ sudo ln -sf /usr/local/git/bin/git
$ sudo ln -sf /usr/local/git/bin/git-credential-osxkeychain
$ sudo ln -sf /usr/local/git/bin/git-cvsserver
$ sudo ln -sf /usr/local/git/bin/git-receive-pack
$ sudo ln -sf /usr/local/git/bin/git-shell
$ sudo ln -sf /usr/local/git/bin/git-upload-archive
$ sudo ln -sf /usr/local/git/bin/git-upload-pack
$ ls -la
(you should see your new symlinks)

0

Lo hice de esta manera:

  1. Abra la aplicación GitHub instalada en Mac
  2. Haga clic en la pestaña Avanzado → Instalar herramientas de línea de comandos
  3. Una vez que reciba un mensaje de que se han instalado todos los comandos, cierre su terminal y vuelva a abrirlo.
  4. Ahora verifique git --version, debería darle la última versión.

0

Debe ajustar la ruta del shell, la ruta se establecerá en .bashrc o .bash_profile en su directorio de inicio, lo más probable es que .bash_profile

Por lo tanto, agregue en la ruta similar a la siguiente y mantenga lo que ya tiene en la ruta, cada segmento está separado por dos puntos:

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


0

La última versión no estaba disponible como binario para mac en git-scm.com, así que la instalé desde el código fuente. Me faltaba un paquete requerido para la localización, y lo agregué NO_GETTEXT=truepara instalar sin localización.

git clone https://github.com/git/git.git
cd git
make NO_GETTEXT=true
make NO_GETTEXT=true install

Esta instalado gitbajo el ~/bincual luego tuve que agregar al comienzo de mi PATHvariable.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.