私の 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
。