`哪个` 在骗我吗?

`哪个` 在骗我吗?

我通过 安装了 git apt-get,但发现版本太旧了,所以我从源代码安装 git最终结果令人费解:

$ git --version
git version 1.7.0.4
$ which git
/usr/local/bin/git
$ /usr/local/bin/git --version
git version 1.7.6

看来这which是在骗我……这似乎不太可能。这里到底发生了什么,我如何才能直接调用 git 来运行正确的版本?

答案1

which是在说实话。你的壳在骗你。

git is hashed (/usr/bin/git)

意味着你的 shell 已经缓存了“git”的这个位置,并且正在使用缓存的路径,而不是再次搜索 $PATH。使用hash -r清除缓存并让 shell 在 $PATH 中搜索新的 git/usr/local/bin/git

答案2

你在 shell 中为 git 设置了别名吗?

$ alias git="/bin/echo This is not the git you are looking for"
$ which git
/usr/bin/git
$ git --version
This is not the git you are looking for --version
$ /usr/bin/git --version
git version 1.7.4.1
$ type git
git is aliased to `/bin/echo This is not the git you are looking for'
$ unalias git
$ type git
git is /usr/bin/git
$ git --version
git version 1.7.4.1

相关内容