OS X (oder Xcode) wird mit Git 1.7.irgendwas ausgeliefert, gibt aber nach brew install git
(1.8.0) which git
immer das alte zurück /usr/bin/git
.
Das ist, was ich bekomme, wenn ich jetzt $PATH echoe:
/usr/local/bin:/usr/local/sbin:~/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin
Sollten Homebrew-Sachen nicht Vorrang haben?
Außerdem habe ich keine Ahnung, woher das usr/local/git/bin
am Ende kommt.
Antwort1
Verstanden. Die Antwort steckt in Ihrer Frage; brew installiert git in /usr/local/git/bin
(nicht /usr/local/bin
), aber da das in Ihrem Pfad nachher kommt /usr/bin
, erhalten Sie das zuerst. Mein Kommentar für which -a git
hätte Sie in diese Richtung weisen sollen.
Antwort2
Ich bin auch auf dieses Problem gestoßen.
Wenn Sie Git nach der Installation über Homebrew ausführen, brew doctor
erhalten Sie eine Warnung, dass das System, wie Joe oben erwähnt hat, das alte Git ausführt, da dessen Installationsort an erster Stelle steht.
Aber in der gleichen Warnung gibt Homebrew den Code zur Behebung des Problems an:
$ echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile
Antwort3
Es gehört zu meinen Unix-Gewohnheiten, ein ~/bin
Verzeichnis zu haben, das ich an den Anfang meines setze PATH
. Dies ist einer der ersten Teile in meinem .bashrc
:
case ":$PATH:" in
*:$HOME/bin:*) ;; # do nothing if $PATH already contains $HOME/bin
*) PATH=$HOME/bin:$PATH ;; # in every other case, add it to the front
esac
Wenn das vorhanden ist, können Sie selektiv nur die von Homebrew verwaltete Version git
vor der Systemversion vorziehen (anstattjedenHomebrew-verwaltete Binärdatei) und nur für Ihre Shell-Sitzungen (anstattalleProgramme, die von überall aus gestartet werden können (einschließlich GUI-Programme), ist so einfach wie das Erstellen eines symbolischen Links:
ln -s /usr/local/bin/git ~/bin/git