5

我在 OSX 10.8.2 上,我正在运行 git git v1.7.4.4

我刚刚在远程服务器上安装了 git,它的版本是 1.11.x。我想运行相同版本的软件,但我不知道如何在我的笔记本电脑上更新 git。

我尝试按照此处列出的步骤,指示下载git-OSX-installer,运行安装(运行顺利),然后执行:

$ sudo mkdir -p /usr/local/bin
$ sudo ln -s /usr/local/git/bin/git /usr/local/bin/git

但在这之后我做git --version了,它仍然是 1.7.4.4。我只是重新安装了相同的版本吗?还是我在其他地方安装了更新的版本?

我一直在阅读类似的问题,我认为问题在于 OSX 附带的旧版本 git 安装在不同的位置,然后 git-osx-installer 或 mac 端口将放置它。但我不知道如何纠正这个问题。提前感谢您的建议。

更新:

which git返回:/usr/bin/git

echo $PATH返回:/opt/local/bin:/opt/local/sbin:/usr/local/rvm/gems/ruby-1.9.3-p194/bin:/usr/local/rvm/gems/ruby-1.9.3- p194@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p194/bin:/usr/local/rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin: /usr/local/bin:/usr/local/git/bin:/opt/sm/bin:/opt/sm/pkg/active/bin:/opt/sm/pkg/active/sbin

更新2:

ESL ~/Downloads$ export PATH=/usr/local/bin:$PATH
ESL ~/Downloads$ which git
/usr/local/bin/git
ESL ~/Downloads$ 
ESL ~/Downloads$ git --version
git version 1.8.1.3

看来我在本地安装了较新的 git 版本。那么我应该将 .bash_profile 添加export PATH=/usr/local/bin:$PATH到我的 .bash_profile 中吗?两个版本的git都安装有问题吗?

我添加export PATH=/usr/local/bin:$PATH到 ~/.bash_profile 的底部,现在新版本的 git 运行。

4

3 回答 3

17

在 Mac OSX 机器上更新任何二进制文件的最佳方法是使用专门为 Mac 开发的软件包(.dmg 或 .pkg 下载)。

对于 git,位于: http: //git-scm.com/download/mac (单击此链接应自动开始下载最新版本的 git for Mac)。

但是,在这种情况下(至少对于我的 10.8.3 MacBook 而言),这并不是故事的全部:软件包安装了 git,/usr/local/git然后在末尾添加了该路径$PATH——这违背了 IMO 的全部目的。

我已经手动修改了我.bashrc的内容,以便获得类似于上面建议的内容:

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

一旦你这样做了,你应该会看到选择了正确版本的 git:

$ git --version
git version 1.8.2.2 

请注意,这不适用于以交互方式启动的任何应用程序(例如,通过停靠栏) - 您必须运行下载包中提供的附加脚本;请参阅README说明。

于 2013-05-13T20:00:39.550 回答
15

由于 /usr/bin 在路径中出现在 /usr/local/bin 之前,因此 /usr/bin 中的 git 可执行文件将优先。在你的 shell 中试试这个:

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

在旁注中,我强烈建议使用自制软件来管理诸如此类的安装在 macOS 上

于 2013-02-24T23:09:10.487 回答
3

我在 Cygwin(为 Windows 编译的 Linux 环境)中遇到了类似的问题。我会做

which git

它会响应从源代码编译的更新 git 的正确位置,但在我这样做之前不会真正使用它

hash -r git

我不声称理解这是做什么的或为什么必须这样做,但在那之后git --version回答'1.8.2.rc0.22.gb3600c3'显然不再是Cygwin附带的旧git。这可能不适用于 OSX,但如果which git正在查找更新的二进制文件,请试一试。

于 2013-02-24T22:46:30.343 回答