Ich stoße auf ein wirklich seltsames Problem, wenn ich versuche, die neueste Version von git zu verwenden, die ich gerade über Homebrew installiert habe. which git
verweist mich auf die Homebrew-Installation, aber beim Aufrufen wird git
die mit OS X installierte Originalversion zurückgegeben.
Ich überprüfte zuerst, um die ursprüngliche Version zu sehen, auf der ich war.
[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)
Dann ging ich zu Homebrew, um die neueste Version zu installieren.
[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
Sieht so aus, als hätte es funktioniert! Überprüfen Sie, ob es auf den richtigen Git zeigt
[user@home ~]$ which git
/usr/local/bin/git
Sollte gut sein, oder? Nicht so schnell
[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)
Das ist komisch. Zeige ich wirklich auf den richtigen Schwachkopf?
[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
Sicher sieht es so aus. Funktioniert, wenn ich es manuell aufrufe
[user@home ~]$ /usr/local/Cellar/git/2.0.0/bin/git --version
git version 2.0.0
Aber nicht als git
[user@home ~]$ which git
/usr/local/bin/git
[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)
Irgendwelche Ideen, was dies verursachen könnte?
EDIT: Gelöst es. source .bashrc
repariert. which
Ich bin immer noch neugierig, warum ich die richtige ausführbare Datei zurückbekomme, aber sie würde nicht aufgerufen, wenn das jemand erklären kann.
$PATH
.Antworten:
Shells verwalten einen Cache mit den Pfaden, in denen ausführbare Dateien in der
$PATH
Variablen gefunden wurden. Es wurde also/usr/bin/git
eher zwischengespeichert als/usr/local/bin/git
, weil letzteres nicht existierte, als Ihre Shell gestartet wurde. Wenn Siehash -r
auf Ihrem aktuellen Terminal in Bash ausgeführt werden, wird dieser Cache$PATH
gelöscht. Die erste gefundene Instanz in sollte diejenige sein, die ausgeführt wird.quelle
hash -r
arbeitete für michIch habe genau das gleiche Problem. Hier ist meine Lösung.
Danach sind Sie fertig, können jedoch keine Änderungen mehr sehen, wenn Sie ausgeführt werden
git --version
. Einfach abmelden und wieder anmelden,git --version
erneut ausführen .quelle
source ~/.bash_profile
.Ich habe das gleiche Problem. Ich habe mein Terminal einfach neu gestartet.
quelle
Mein Problem war, dass ich die Mac GitHub App installiert hatte.
/usr/local/bin/git
zeigte auf die Git-Version der App, nicht auf die Homebrew-Version. Das Deinstallieren der GitHub-App hat das Problem für mich behoben.quelle
Befolgen Sie die folgenden Schritte, wenn Sie Homebrew zum Aktualisieren von Git auf Ihrem Computer verwenden:
brew doctor
Beheben Sie die vorgeschlagenen Probleme
brew update
wenn eine neuere Version von Homebrew verfügbar istbrew install git
um die neueste Version von git herunterzuladen und zu installierenLaufen
brew doctor
wird dich das wissen lassenDie Ausführung
brew link git
führt zu einem Fehlerbrew link --overwrite git
um den symlink zu überschreiben und auf das installierte git brew zu zeigen.quelle
Öffnen Sie Ihr Terminal. Geben Sie diesen Befehl ein.
sudo nano /etc/paths
Kopieren Sie dann den folgenden Pfad oben in die Datei.
/usr/local/git/bin
Drücke Strg + X und speichere.
Prüfen
git --version
Funktioniert bei mir.
quelle
git/bin
. Meinst dubin/git
? Es ist auch nicht erforderlich, dies zu Ihren Pfaden hinzuzufügen -/usr/local/bin
ist bereits vorhanden.