OS X (oder Xcode) wird mit git 1.7.something geliefert, gibt aber nach brew install git
(1.8.0) which git
immer wieder das alte zurück /usr/bin/git
.
Das bekomme ich, wenn ich gerade $ PATH wiederhole:
/usr/local/bin:/usr/local/sbin:~/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin
Sollte Homebrew-Zeug nicht Vorrang haben?
Ich habe auch keine Ahnung, woher das usr/local/git/bin
am Ende kommt.
ls /usr/local/bin
Showsgit
ist da. Brew bestätigt auch, dass es installiert ist. Ich habe sogar das Git-Deinstallationsprogramm (sowohl vonbrew uninstall
als auch unter Verwendung des mit dem offiziellen Git-Download gelieferten) ausgeführt und redidiertbrew install git
. Ich bekomme immerwhich git = = /usr/bin/git"
.which -a git
zu sehen, ob es überhaupt gefunden wird.Antworten:
Verstanden. Die Antwort ist in Ihrer Frage; Brew installiert git auf
/usr/local/git/bin
(nicht/usr/local/bin
), aber da dies nach/usr/bin
Ihrem Weg ist, erhalten Sie diesen zuerst. Mein Kommentar fürwhich -a git
hätte Sie in diese Richtung weisen sollen.quelle
ls -l /usr/local/bin/git
auch. Ich wette, es ist eine symbolische Verbindung zu/usr/bin/git
./usr/local/git/bin
scheint dort zu sein, wo der offizielle Installer es auch hinstellt./etc/paths
und/etc/paths.d
wie gut.which -a git
Rückkehr/usr/local/bin/git; /usr/bin/git; /usr/local/bin/git
. Also habe ich den alten Idioten umbenanntusr/bin/git_old
und ihn aus dem Weg geräumt. Gibt jetztgit --version
1,8 zurück und beweist, dass Brew Git erfolgreich installiert hat. - Wieder habe ich in/usr/bin/git
seinen ursprünglichen Namen umbenannt ... und plötzlich funktioniert es richtig! Ich weiß nicht warum oder wie, aber das Umbenennen/usr/bin/git
und Ausführen von git scheint das Problem einmal gelöst zu haben. Wer weiß, wo die Wurzel des Problems lag.Ich bin auch auf dieses Problem gestoßen.
Wenn Sie git nach der Installation über Homebrew ausführen
brew doctor
, werden Sie gewarnt, dass das System, wie oben erwähnt, das alte Git ausführt, da der Installationsort an erster Stelle steht.Aber in der gleichen Warnung gibt Homebrew den Code, um das Problem zu beheben:
quelle
Es gehört zu meinen Unix-Gewohnheiten, ein
~/bin
Verzeichnis zu haben, das ich zu Beginn meiner Arbeit erstellt habePATH
. Dies ist eines der ersten Bits in meinem.bashrc
:Wenn dies vorhanden ist, hat es selektiv
git
Vorrang vor der Systemversion (anstelle jeder von Homebrew verwalteten Binärdatei) und nur für Ihre Shell-Sitzungen (anstelle aller von überall gestarteten Programme, einschließlich GUI-Programme) so einfach wie das Verknüpfen:quelle