我刚买了一台新的Mac,安装了OS X Lion系统,我在终端上检查了默认安装的git版本。我知道答案了

git --version
> git version 1.7.5.4

我想把git升级到最新的1.7.8.3版本,所以我下载了dmg安装程序“git-1.7.8.3-intel-universal-snow-leopard”。dmg”,然后我启动了它。

安装完成后,终端仍然显示版本为1.7.5.4。我做错了什么?


当前回答

@rafaecheve的回答在我这个Mac用户身上非常有效。我在我的机器上安装了几个版本的git,但是使用了包管理器,Homebrew和以下代码:

brew link --overwrite git

我收到这个确认

Linking /usr/local/Cellar/git/2.32.0... 212 symlinks created.

拖鞋!

其他回答

如果你能补充以下内容可能会更好:

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

到主文件夹中名为.bashrc的文件。这样,您可能安装在/usr/local/git/bin中的任何其他软件也将首先被找到。

一个简单的方法就是输入:

echo "export PATH=/usr/local/git/bin:/usr/local/sbin:$PATH" >> ~/.bashrc

到终点站,它会为您办理的。

在git-scm.com上没有最新版本的mac二进制文件,所以我从源代码安装。我缺少一个本地化所需的包,并添加了NO_GETTEXT=true来安装没有本地化。

git clone https://github.com/git/git.git
cd git
make NO_GETTEXT=true
make NO_GETTEXT=true install

这将git安装在~/bin下,然后我必须将其添加到PATH变量的开头。

我不喜欢改变路径层次结构,而是专门处理git…知道我永远不会使用旧的git来做新的git现在将管理的事情。这是一个蛮力解决方案。

注意:我先在Yosemite(10.10.2)上干净地安装了XCode。

然后我从git-scm.com上可用的二进制文件进行安装。

$ which git
/usr/bin/git
$ cd /usr/bin
$ sudo ln -sf /usr/local/git/bin/git
$ sudo ln -sf /usr/local/git/bin/git-credential-osxkeychain
$ sudo ln -sf /usr/local/git/bin/git-cvsserver
$ sudo ln -sf /usr/local/git/bin/git-receive-pack
$ sudo ln -sf /usr/local/git/bin/git-shell
$ sudo ln -sf /usr/local/git/bin/git-upload-archive
$ sudo ln -sf /usr/local/git/bin/git-upload-pack
$ ls -la
(you should see your new symlinks)

对我来说,在Homebrew 1.6.7中,以下操作是有效的:

brew upgrade git

我最近也把我的OS X机器上的Git升级到了最新版本。我没有使用您使用的.dmg,但当我安装它时,二进制文件被放置在/usr/local/bin中。现在,根据我的PATH的排列方式,目录/usr/bin出现在/usr/local/bin之前。所以我所做的是:

cd /usr/bin
mkdir git.ORIG
mv git* git.ORIG/

这将把几个名为git*的原始程序移动到一个新的子目录中,使它们不受影响。在此之后,哪个git显示找到了/usr/local/bin中的文件。

根据需要修改上面的过程,以适应您安装新二进制文件的地方。