Git wird nicht vom ersten Standort in $PATH ausgeführt

Git wird nicht vom ersten Standort in $PATH ausgeführt

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 gitTools in $PATH-Reihenfolge auf. Oder Sie können einfach sagen

git --version

Dadurch erfahren Sie, welche Version ein typischer gitBefehl verwendet.

verwandte Informationen