自制 git 安装不会优先于系统版本(在 /usr/bin/ 中)

自制 git 安装不会优先于系统版本(在 /usr/bin/ 中)

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

相关内容