使用自制软件版本覆盖Xcode的Git

我已经安装了XCode,因此git也在那里。 因为我想有一个新版本的git我安装使用自制软件。

但是自制版本的git从来没有被调用,因为我的PATH看起来像这样

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

这意味着/usr/bin/git总是在/usr/local/bin/git之前调用。

有没有办法改变,而不改变PATH?

Xcode实际上是使用存储在/Applications/Xcode.app/Contents/Developer/usr/bin的GIT。 当您安装命令行工具作为Xcode安装的一部分时,相同版本的GIT将安装在/usr/bin 。 所以,你将无法改变Xcode正在使用的东西(除非你愿意弄乱Xcode包的内容)。 如果从terminal应用程序,你想使用自制安装的GIT,那么你有两个select:

  1. 引用GIT的完整path为/usr/local/bin/git ...对于这种情况,您可以创buildalias mgit=/usr/local/bin/git ,然后使用mgit ...从terminal
  2. 如果您使用zsh文件(或者每次在命令行启动terminal),请将path更改为PATH=/usr/local/bin:$PATH.bashrc.zshrc

由于Xcode硬编码自己的版本的git安装在/Applications/Xcode.app/Contents/Developer/usr/bin/git ,我设法使用这个解决方法:

  1. 改成Xcode目录:

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

  2. 重命名Xcode的git像这样:

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

  3. 链接我自己通过自制安装的git:

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

我用/usr/bin/git做了同样的事情

这将acctually链接/usr/local/Cellar/git/1.8.0/bin/git (因为我使用git 1.8.0在目前)

当然,这可能会导致一些其他的问题,比如我在将来升级自制软件git的时候,对我不起作用:(那么我就必须build立一个新的连接。

我这样做是因为我想在这里解决我自己的问题13177203 。 而且在长时间searchStackOverFlow之后,我终于得到了这个解决scheme。

如果你使用的是~/.config/fish/config.fish而不是bash,你可以通过在~/.config/fish/config.fish添加以下内容来指向你的首选git二进制文件。

 function git /usr/local/bin/git $argv; end