Auf meinem Mac sind anscheinend zwei verschiedene Git-Instanzen installiert, und aus irgendeinem Grund wählt Bash nicht diejenige aus, die ich verwenden möchte, obwohl ihr Verzeichnis in der PATH-Variable vor dem Verzeichnis der anderen Instanz steht.
Git befindet sich in den folgenden beiden Verzeichnissen
/usr/bin/git #git version 2.24.3 (Apple Git-128), probably installed by XCode
/usr/local/Cellar/git/2.29.2/bin/git #installed by homebrew
Es gibt auch einen Symlink zu letzterem von /usr/local/bin/git
lrwxr-xr-x 1 fredrik admin 28 Dec 6 13:50 /usr/local/bin/git -> ../Cellar/git/2.29.2/bin/git
Ich würde gerne die Homebrew-Version verwenden, die auf dem neuesten Stand ist (und problemlos auf dem neuesten Stand gehalten werden kann), während die XCode-Instanz eine ältere ist, die ich nicht einfach aktualisieren konnte. Aus irgendeinem Grund wählt Bash jedoch immer Git aus /usr/bin aus
fredrik ~ $ whereis git
/usr/bin/git
obwohl /usr/local/bin in meiner PATH-Variable vor /usr/bin kommt
fredrik ~ $ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/dotnet:/opt/X11/bin:~/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands:~/bin:/usr/local/opt/openssl/bin
Warum ist das so und was muss ich tun, damit Bash die gewünschte Instanz auswählt? Ich habe bereits versucht, die Git-Instanz aus /usr/bin zu entfernen, aber das System lässt mich nicht
fredrik bin $ rm -rf git
rm: git: Operation not permitted
wahrscheinlich aufgrund des Systemintegritätsschutzes oder so etwas.
Antwort1
Du hast wahrscheinlichSindverwenden /usr/local/bin/git
. Das Problem wäre, dass Sie nicht die richtige Frage stellen. Verwenden Sie nicht whereis
(es tut nicht, was Sie denken), sondern verwenden Sie which
, wie folgt:
which -a git
Dies listet alle bekannten git
Tools in $PATH-Reihenfolge auf. Oder Sie können einfach sagen
git --version
Dadurch erfahren Sie, welche Version ein typischer git
Befehl verwendet.