OSX Lion 更新后 Git 仍为旧版本

OSX Lion 更新后 Git 仍为旧版本

GIT 的先前版本是 1.7.5.4。我决定更新到较新的版本 1.7.9.4

安装程序显示已安装,但在终端中检查版本号时显示仍为 1.7.5.4 版本

目前我不是唯一一个遇到这个问题的人。

我已经检查过.bash_profile 中的路径是否正常。

答案1

检查您想要的 git 版本在哪个目录中...我的在 usr/local/git/bin

为了将其相应地添加到 PATH(即使理论上它已经在 PATH 中,但我必须将其添加到开头以优先于其他文件夹中的 git 1.7.5.4)我在 .bash_profile 中添加了以下几行:

PATH = "/usr/local/git/bin:${PATH}"
export PATH

然后我退出终端并重新启动它,让它有机会拼凑新的 PATH,它对我来说是有效的。

对于像我一样完全是菜鸟并且不知道如何访问 .bash_profile 的人来说,这是我的方法(使用 vim 文本编辑器):

vi ~/.bash_profile

答案2

1.7.9.4 是否安装在路径中比包含 1.7.5.4 的目录更靠后的目录中?我假设(也许是错误的)您将两个版本安装在不同的目录中。

答案3

我的 $PATH 看起来像:

/usr/local/git/bin/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin:/opt/local/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/mysql/bin:/Users/robert/.rvm/bin:/usr/local/git/bin/:/usr/local/git/bin/

我检查了一些文件,如://.bash_profile有一些导出 $PATH 声明。.profile.bashrc

/usr/bin/git --version
=> git version 1.7.5.4

/usr/local/git/bin/git --version
=> git version 1.7.10.1

首先,我删除了导出路径声明。它们把事情搞乱了。

有点奇怪的是,v1.7.5.4 的卸载程序将 git 定位在 ,/usr/local/git并安装在此处/usr/bin/git。我一直使用官方安装程序。

然后我在其他地方看到 Xcode 也安装了 git (我想应该是这个/usr/bin/git)。所以我不打算删除这个。

.bash_profile因此,我首先从//.profile中删除了所有导出 PATH 声明.bashrc。这使我的 PATH 看起来像:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin:/opt/local/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/mysql/bin:/Users/robert/.rvm/bin

稍微短一点。当我执行which git' 时,它给了我/usr/bin/git。这不是我想要的版本。所以我回去把 PATH 改为

/usr/local/git/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin:/opt/local/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/mysql/bin:/Users/robert/.rvm/bin

添加以下行:

export PATH=/usr/local/git/bin:$PATH

.bash_profile

首先打开一个新的终端窗口进行测试git --version,或者which git如果您想在同一个终端中测试这些命令,请先输入以启用文件source .bash_profile中的更改.bash_profile

/usr/local/git/bin(1.7.10.1 版本)将首先被找到('which git' 导致/usr/local/git/bin/git

答案4

所以,这有点老了,但我对你最初的问题有答案。答案如下:http://code.google.com/p/git-osx-installer/issues/detail?id=67

问题不在于.bashrc.bash_profile。问题在于/etc/paths/etc/paths.d。OS X 安装程序将 git 添加到/usr/local/git/bin。它还将 添加/usr/local/git/bin/etc/paths.d

如果我理解正确的话,/usr/bin位于 之前/usr/local/etc/paths因此使用的是 中的 git 版本/usr/bin/git(Xcode 版本)。但是,由于某种原因,在 中的条目后面添加一个斜杠/etc/paths.d将强制系统改用/usr/local/git/bin版本。

相关内容