Git の Homebrew インストールはシステム バージョン (/usr/bin/ 内) よりも優先されません

Git の Homebrew インストールはシステム バージョン (/usr/bin/ 内) よりも優先されません

OS X (または Xcode) には git 1.7.something がバンドルされていますが、brew install git(1.8.0)以降ではwhich git古い が返され続けます/usr/bin/git

現在 $PATH を echo すると、次の結果が表示されます。

/usr/local/bin:/usr/local/sbin:~/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin

Homebrew のものを優先すべきではないでしょうか?

usr/local/git/binまた、最後にそれがどこから来るのか全く分かりません。

答え1

分かりました。答えはあなたの質問の中にあります。brew は git を/usr/local/git/bin( ではなく) にインストールしますが、パス内で の/usr/local/bin後にあるため、最初に を取得します。 に対する私のコメントは、この方向を指し示しているはずです。/usr/binwhich -a git

答え2

私もこの問題に遭遇しました。

homebrew 経由で git をインストールした後、 を実行すると、brew doctorJoe が上で述べたように、インストール場所が最初に来るため、システムが古い git を実行しているという警告が表示されます。

しかし、同じ警告の中で、homebrew はそれを修正するためのコードを提供します:

$ echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile

答え3

~/bin私の Unix の習慣の一部として、 の先頭にディレクトリを置くことがあります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管理バイナリ)とシェルセッションのみ(全てGUI プログラムを含む、どこからでもプログラムを起動できるようにするには、シンボリックリンクを作成するだけです。

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

関連情報