web-dev-qa-db-ja.com

Xcodeのgitをhomebrewバージョンで上書きする

XCodeをインストールしたので、gitもあります。 gitの新しいバージョンが必要なため、homebrewを使用してインストールしました。

しかし、私のPATHはこのように見えるので、gitのhomebrewバージョンは決して呼び出されません

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

つまり、/usr/bin/git/usr/local/bin/gitの前に常に呼び出されます。

PATHを変更せずにそれを変更する方法はありますか?

43
BetaRide

Xcodeは/Applications/Xcode.app/Contents/Developer/usr/binに保存されているGITを実際に使用しています。 Xcodeのインストールの一部としてコマンドラインツールをインストールすると、GITの同じバージョンが/usr/binにインストールされます。したがって、Xcodeが使用しているものを変更することはできません(Xcodeパッケージの内容をいじるつもりがない場合)。ターミナルアプリケーションからhomebrew-installed GITを使用する場合、2つのオプションがあります。

  1. /usr/local/bin/git ...としてフルパスでGITを参照しますこの場合、alias mgit=/usr/local/bin/gitのようなエイリアスを作成し、ターミナルからmgit ...を使用できます
  2. Zshファイルを使用する場合(またはコマンドラインでターミナルを起動するたびに)、PATH=/usr/local/bin:$PATHまたは.bashrc.zshrcとしてパスを変更します。
56
GoZoner

Xcodeは/Applications/Xcode.app/Contents/Developer/usr/bin/gitにインストールされた独自のバージョンのgitをハードコーディングしたため、この回避策を使用できました。

  1. xcodeディレクトリに移動します:

    cd /Applications/Xcode.app/Contents/Developer/usr/bin

  2. xcodeのgitの名前を次のように変更します。

    Sudo mv ./git ./git-xcode-usr-bin

  3. homebrewを介してインストールされた自分のgitをリンクします。

    Sudo ln -s /usr/local/bin/git ./git

そして、/usr/bin/gitで同じことをしました

これは実際に/usr/local/Cellar/git/1.8.0/bin/gitをリンクします(現在git 1.8.0を使用しているため)

確かに、これは将来、homebrewのverion gitをアップグレードするとき、それが私にとってはうまくいかないなど、いくつかの他の問題を引き起こす可能性があります:(そして、新しいリンクを作成する必要があります。

ここで自分の問題を解決したいので、このようにします 131772 。そして、StackOverFlowを長時間検索した後、ようやくこのソリューションを手に入れました。

14
oppih

Bashの代わりに fish Shell を使用している場合は、~/.config/fish/config.fish

function git
  /usr/local/bin/git $argv; 
end
8
Paul Wenzel