Kann nicht Homebrew installiert Git verwenden


15

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 gitverweist mich auf die Homebrew-Installation, aber beim Aufrufen wird gitdie 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 .bashrcrepariert. whichIch 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.


Ich bin mir nicht sicher, wo genau das Problem liegt, aber es hört sich so an, als ob Sie sich den aktuellen Wert von ansehen möchten $PATH.
Zev Eisenberg

3
Wenn Sie alle Versionen von git sehen möchten, die Sie installiert haben, verwenden Sie -> which -a git - (welches git gibt Ihnen nur den Pfad des zuerst gefundenen in Ihrer PATH-Variablen zurück), um zu sehen, welche Pfade Sie in Ihrem PATH haben -> echo $ PATH
konqui

Antworten:


24

Shells verwalten einen Cache mit den Pfaden, in denen ausführbare Dateien in der $PATHVariablen gefunden wurden. Es wurde also /usr/bin/giteher zwischengespeichert als /usr/local/bin/git, weil letzteres nicht existierte, als Ihre Shell gestartet wurde. Wenn Sie hash -rauf Ihrem aktuellen Terminal in Bash ausgeführt werden, wird dieser Cache $PATHgelöscht. Die erste gefundene Instanz in sollte diejenige sein, die ausgeführt wird.


hash -rarbeitete für mich
Metallgetriebe solide

5

Ich habe genau das gleiche Problem. Hier ist meine Lösung.

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

Danach sind Sie fertig, können jedoch keine Änderungen mehr sehen, wenn Sie ausgeführt werden git --version. Einfach abmelden und wieder anmelden, git --versionerneut ausführen .


7
Das Öffnen eines neuen Terminalfensters ist ausreichend. Alternativ könnte man auch anrufen source ~/.bash_profile.
Daniel B

Diese Schritte waren genau das, was ich brauchte, und sie halfen mir, mein System mit der neuesten Version von Git einzurichten. Ich habe auch eine andere Kopie von git entdeckt, die ich von git-scm.com heruntergeladen habe, also habe ich das Skript uninstall.sh ausgeführt, um diese zu entfernen. Mir geht es jetzt gut, vielen Dank an Fang und Jens!
Michael Sheaver

Danke für die Schritte. Für mich war es automatisch möglich, git --version zu verwenden, ohne den letzten Echo-Befehl auszuführen.
Michael Fulton

0

Ich habe das gleiche Problem. Ich habe mein Terminal einfach neu gestartet.


-1

Mein Problem war, dass ich die Mac GitHub App installiert hatte. /usr/local/bin/gitzeigte auf die Git-Version der App, nicht auf die Homebrew-Version. Das Deinstallieren der GitHub-App hat das Problem für mich behoben.


-1

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 ist

brew install git um die neueste Version von git herunterzuladen und zu installieren

Laufen brew doctorwird dich das wissen lassen

Warnung : Sie haben nicht verbundene Fässer in Ihrem Keller

Die Ausführung brew link gitführt zu einem Fehler

Fehler: Konnte bin / git nicht symbolisieren

Ziel / usr / local / bin / git existiert bereits. Möglicherweise möchten Sie es entfernen:

rm '/ usr / local / bin / git'

brew link --overwrite git um den symlink zu überschreiben und auf das installierte git brew zu zeigen.


-1

Ö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.


Es gibt keine solche Datei git/bin. Meinst du bin/git? Es ist auch nicht erforderlich, dies zu Ihren Pfaden hinzuzufügen - /usr/local/binist bereits vorhanden.
Slhck
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.