OS X (ou Xcode) est livré avec git 1.7.quelque chose, mais après brew install git
(1.8.0), which git
continue de renvoyer l'ancien /usr/bin/git
.
Voici ce que j'obtiens quand je fais écho à $ PATH en ce moment:
/usr/local/bin:/usr/local/sbin:~/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin
Les trucs Homebrew ne devraient-ils pas avoir la priorité?
De plus, je n'ai aucune idée d'où cela usr/local/git/bin
vient à la fin.
ls /usr/local/bin
montregit
est là. Brew confirme également qu'il est installé. J'ai même exécuté le programme de désinstallation de git (à la fois enbrew uninstall
utilisant et en utilisant celui fourni avec le téléchargement officiel de git) et refaitbrew install git
. Je continuewhich git = = /usr/bin/git"
.which -a git
pour voir s'il le trouve.Réponses:
Je l'ai. La réponse est dans votre question; brew installe git dans
/usr/local/git/bin
(pas/usr/local/bin
) mais puisque c'est après/usr/bin
sur votre chemin, vous obtenez celui-là en premier. Mon commentaire pourwhich -a git
aurait dû vous orienter dans cette direction.la source
ls -l /usr/local/bin/git
aussi. Je parie que c'est un lien symbolique vers/usr/bin/git
./usr/local/git/bin
semble être là où l'installateur officiel le met aussi./etc/paths
et/etc/paths.d
aussi bien.which -a git
retours/usr/local/bin/git; /usr/bin/git; /usr/local/bin/git
. J'ai donc renommé l'ancien gitusr/bin/git_old
et l'ai retiré du chemin. Renvoie maintenant la versiongit --version
1.8, prouvant que brew a bien installé git. - Encore une fois, j'ai renommé/usr/bin/git
son nom d'origine ... et tout à coup ça fonctionne correctement! Je ne sais pas pourquoi ni comment, mais renommer/usr/bin/git
et exécuter git semble avoir résolu le problème. Qui sait quelle est la racine du problème. Merci quand même :)J'ai également rencontré ce problème.
Après avoir installé git via homebrew, si vous exécutez,
brew doctor
il vous avertira que, comme Joe l'a mentionné ci-dessus, le système exécute l'ancien git car son emplacement d'installation vient en premier.Mais, dans le même avertissement, homebrew donne le code pour le corriger:
la source
Cela fait partie de mes habitudes Unix d'avoir un
~/bin
répertoire que je mets au début de monPATH
. Ceci est l'un des premiers bits de mon.bashrc
:Avec cela en place, faire en sorte que seuls les programmes gérés par Homebrew
git
aient priorité sur la version du système (au lieu de chaque binaire géré par Homebrew), et uniquement pour vos sessions shell (au lieu de tous les programmes démarrés de n'importe où, y compris les programmes GUI), est aussi simple que de créer un lien symbolique:la source