我的 Mac 上似乎安装了两个不同的 git 实例,并且由于某种原因,bash 不会选择我想要使用的那个,即使它的目录在 PATH 变量中位于另一个实例的目录之前。
Git 位于以下两个目录中
/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
即使 /usr/local/bin 在我的 PATH 变量中位于 /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
这将按 $PATH 顺序列出所有已知git
工具。或者您可以简单地说
git --version
它将告诉您典型git
命令正在使用哪个版本。