Git が $PATH の最初の場所から実行されない

Git が $PATH の最初の場所から実行されない

私の Mac には git の 2 つの異なるインスタンスがインストールされているようですが、PATH 変数でそのディレクトリが他のインスタンスのディレクトリよりも前にあるにもかかわらず、何らかの理由で bash は使用したいインスタンスを選択しません。

Gitは次の2つのディレクトリにあります

/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 

/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

私は最新の(そして簡単に最新の状態に保つことができる)Homebrewバージョンを使いたいのですが、XCodeインスタンスは古いもので、簡単に更新できませんでした。しかし、何らかの理由で、bashは/usr/binからgitを選択し続けます。

fredrik ~ $ whereis git
/usr/bin/git

PATH変数では/usr/local/binが/usr/binの前にあるにもかかわらず

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

なぜそうなるのでしょうか?また、bashに目的のインスタンスを選択させるにはどうしたらいいのでしょうか?すでに/usr/binからgitインスタンスを削除しようとしましたが、システムが許可してくれません。

fredrik bin $ rm -rf git
rm: git: Operation not permitted

おそらくシステム整合性保護か何かが原因と思われます。

答え1

あなたはおそらくを使用します/usr/local/bin/git。問題は、正しい質問をしていないことです。 を使用しないでくださいwhereis(期待どおりには機能しません)。whichを次のように使用します。

which -a git

gitこれは、$PATH順にすべての既知のツールをリストします。または、単に次のように言うこともできます。

git --version

これにより、一般的なコマンドが使用しているバージョンがわかりますgit

関連情報