Ne peut pas utiliser git installé homebrew

16

Je rencontre un problème vraiment étrange lorsque j'essaie d'utiliser la dernière version de git que je viens d'installer via homebrew. which gitme pointe vers l'installation homebrew, mais appeler gitrenvoie la version d'origine installée avec OS X.

J'ai vérifié d'abord pour voir la version originale sur laquelle j'étais.

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

Ensuite, je suis allé à homebrew pour installer la dernière version.

[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

On dirait que ça a marché! Vérifiez qu'il pointe vers le bon git

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

Ça devrait être bien, non? Pas si vite

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

C'est bizarre. Suis-je vraiment pointé vers le bon git?

[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

Bien sûr, ça y ressemble. Fonctionne lorsque je l'appelle manuellement

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

Mais pas aussi git

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

Des idées sur ce qui pourrait être à l'origine de cela?

EDIT: Résolu. source .bashrcl'a corrigé. Toujours curieux de savoir pourquoi whichme retournerait l'exécutable correct, mais il ne serait pas appelé si quelqu'un pouvait expliquer cela.

Matt Stone
la source
Je ne sais pas exactement quel est le problème, mais il semble que vous souhaitiez peut-être jeter un œil à la valeur actuelle de $PATH.
Zev Eisenberg
3
si vous voulez voir toutes les versions de git que vous avez installées, utilisez -> quel -a git - (quel git, vous donne juste le chemin du premier trouvé dans votre variable PATH) pour voir quels chemins vous avez dans votre PATH faire un -> echo $ PATH
konqui

Réponses:

25

Les shells conservent un cache des chemins où les exécutables ont été trouvés dans la $PATHvariable. Donc, il a été mis en cache /usr/bin/gitplutôt que /usr/local/bin/git, car ce dernier n'existait pas au démarrage de votre shell. L'exécution hash -rdans Bash à partir de votre terminal actuel effacera ce cache, alors la première instance trouvée dans $PATHdevrait être celle qui s'exécute.

realgeek
la source
hash -rtravaillé pour moi
engrenage métallique solide
5

J'ai exactement le même problème. Voici ma solution.

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

Après cela, vous avez terminé, mais vous ne pouvez pas voir les modifications lorsque vous exécutez git --version. Déconnectez-vous et reconnectez-vous, exécutez à git --versionnouveau.

Croc
la source
7
L'ouverture d'une nouvelle fenêtre de terminal est suffisante. Alternativement, on pourrait également appeler source ~/.bash_profile.
Daniel B
Ces étapes étaient exactement ce dont j'avais besoin et elles m'ont aidé à configurer mon système en utilisant la dernière version de git. J'ai également découvert une autre copie de git que j'avais téléchargée sur git-scm.com, j'ai donc exécuté le script uninstall.sh pour le supprimer. Je vais bien maintenant, merci beaucoup à Fang et Jens!
Michael Sheaver
Merci pour les étapes. Pour moi, j'ai pu utiliser automatiquement git --version sans exécuter la dernière commande echo.
Michael Fulton
0

J'ai le même problème. J'ai simplement redémarré mon terminal.

moteur série
la source
-1

Mon problème était que l'application Mac GitHub était installée. /usr/local/bin/gitpointait vers la version de l'application de git, pas la version Homebrew. La désinstallation de l'application GitHub a résolu le problème pour moi.

Ben
la source
-1

Lorsque vous utilisez homebrew pour mettre à jour git sur votre machine, procédez comme suit:

brew doctor

Résoudre les problèmes suggérés

brew update si une nouvelle version de homebrew est disponible

brew install git pour télécharger et installer la dernière version de git

courir vous brew doctorfera savoir que

Avertissement : vous avez dissocié les fûts dans votre cave

l'exécution brew link gitentraînera l'erreur

Erreur: impossible de créer un lien symbolique vers bin / git

La cible / usr / local / bin / git existe déjà. Vous voudrez peut-être le supprimer:

rm '/ usr / local / bin / git'

brew link --overwrite git pour remplacer le lien symbolique et pointer vers le git brew installé.

Chekkan
la source
-1

Ouvrez votre terminal. Entrez cette commande.

sudo nano /etc/paths

Copiez ensuite le chemin suivant en haut du fichier.

/usr/local/git/bin

Appuyez sur Ctrl + X et enregistrez.

Vérifier git --version

Travaille pour moi.

Mr Pi
la source
Il n'y a pas un tel fichier git/bin. Tu veux dire bin/git? En outre, il n'est pas nécessaire d'ajouter cela à vos chemins - /usr/local/binest déjà là.
slhck