当我尝试使用刚刚通过 homebrew 安装的最新版本的 git 时,遇到了一个非常奇怪的问题。which git
指向我 homebrew 安装,但调用git
返回使用 OS X 安装的原始版本。
我首先检查了我所使用的原始版本。
[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)
然后我去 homebrew 安装了最新版本。
[user@home ~]$ brew install git
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/git-2.0.0.mavericks.bottle.2.tar.gz
######################################################################## 100.0%
==> Pouring git-2.0.0.mavericks.bottle.2.tar.gz
==> Caveats
The OS X keychain credential helper has been installed to:
/usr/local/bin/git-credential-osxkeychain
The 'contrib' directory has been installed to:
/usr/local/share/git-core/contrib
Bash completion has been installed to:
/usr/local/etc/bash_completion.d
zsh completion has been installed to:
/usr/local/share/zsh/site-functions
==> Summary
答案1
Shell 会维护在变量中找到可执行文件的路径的缓存$PATH
。因此,它缓存了/usr/bin/git
而不是/usr/local/bin/git
,因为后者在 shell 启动时不存在。从当前终端运行Bash 将清除此缓存,然后应执行hash -r
在中找到的第一个实例。$PATH
答案2
我遇到了完全相同的问题。这是我的解决方案。
brew uninstall git
# make sure everything is alright, maybe brew will give you some hint
brew doctor
brew update
brew install git
# magic happen, brew will give you hint /usr/bin occurs before /usr/local/bin
# and recommend you run following command
brew doctor
echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile
完成后,您仍无法在运行时看到任何变化git --version
。只需注销并重新登录,然后git --version
再次运行即可。
答案3
当使用 homebrew 在你的机器上更新 git 时,请按照以下步骤操作:
brew doctor
修复建议的问题
brew update
是否有更新版本的自制软件可用
brew install git
下载并安装 git 的最新版本
跑步brew doctor
会让你知道
警告:你的酒窖中有未链接的酒桶
执行brew link git
将导致错误
错误:无法符号链接 bin/git
目标 /usr/local/bin/git 已存在。您可能想要将其删除:
rm'/usr/local/bin/git'
brew link --overwrite git
覆盖符号链接并指向已安装的 git brew。
答案4
我的问题是我安装了 Mac GitHub 应用程序。/usr/local/bin/git
指向的是应用程序的 git 版本,而不是 Homebrew 版本。卸载 GitHub 应用程序解决了这个问题。