OS X(或 Xcode)与 git 1.7.something 捆绑在一起,但在brew install git
(1.8.0)之后,which git
一直返回旧的/usr/bin/git
。
这是我现在回显 $PATH 时得到的结果:
/usr/local/bin:/usr/local/sbin:~/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin
自制的东西难道不应该优先吗?
而且,我根本不知道这usr/local/git/bin
到底是从哪里来的。
答案1
明白了。答案就在你的问题中;brew 将 git 安装到/usr/local/git/bin
(不是/usr/local/bin
),但由于它/usr/bin
在你的路径之后,所以你首先得到那个。我的评论which -a git
应该已经为你指明了方向。
答案2
我也遇到了这个问题。
通过 homebrew 安装 git 后,如果您运行brew doctor
,它会警告您,正如 Joe 上面提到的,系统正在运行旧的 git,因为它的安装位置在先。
但是,在同一个警告中,Homebrew 给出了修复该问题的代码:
$ echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile
答案3
我习惯在 Unix 系统中建立一个~/bin
目录,将其放在程序的开头PATH
。以下是我的程序中的前几部分.bashrc
:
case ":$PATH:" in
*:$HOME/bin:*) ;; # do nothing if $PATH already contains $HOME/bin
*) PATH=$HOME/bin:$PATH ;; # in every other case, add it to the front
esac
有了这个,然后有选择地使 Homebrew 管理的版本git
优先于系统版本(而不是每一个Homebrew 管理的二进制文件),并且只用于你的 shell 会话(而不是全部启动任何程序(包括 GUI 程序)都很简单,只需对其进行符号链接即可:
ln -s /usr/local/bin/git ~/bin/git