git 的自製安裝不會優先於系統版本(在 /usr/bin/ 中)

git 的自製安裝不會優先於系統版本(在 /usr/bin/ 中)

OS X(或 Xcode)與 git 1.7.something 捆綁在一起,但在brew install git(1.8.0)之後,which git不斷返回舊的/usr/bin/git.

這是我現在 echo $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,因為它的安裝位置是第一位的。

但是,在同一個警告中,自製程式給出了修復它的程式碼:

$ 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優先於系統版本(而不是每一個自製管理的二進位檔案),並且僅用於您的 shell 會話(而不是全部從任何地方啟動的程序,包括 GUI 程式),就像符號連結一樣簡單:

ln -s /usr/local/bin/git ~/bin/git

相關內容