2013-02-24 74 views
5

我在OSX 10.8.2和我运行git git的v1.7.4.4如何更新OSX 10.8

我刚刚安装了一个远程服务器上的git和它的1.11版本,我的版本的Git。 X。我想我会运行相同版本的软件,但我无法弄清楚如何在我的笔记本电脑上更新git。

我试图按照所列here的步骤,其指示下载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 /斌/ git的

echo $PATH回报: 的/ opt/local/bin目录中:/ opt/local/sbin中:在/ usr /本地/ RVM /宝石/ruby-1.9.3-p194/bin:/usr/local/rvm/gems/[email protected]/bin:/usr/local/rvm/rubies/ruby-1.9.3-p194/bin :在/ usr /本地/ RVM /斌:在/ usr/bin中:/ bin中:/ usr/sbin目录:/ sbin目录:在/ usr/local/bin目录:在/ usr /本地/ git的/ bin中中:/ opt/SM /斌:/ opt/sm/pkg/active/bin:/ opt/sm/pkg/active/sbin

Update2:

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中吗?这是两个版本的git安装的问题吗?

我加​​了我的〜/ .bash_profile中的底部,现在的git运行的新版本。

+0

什么是'哪个git'displaying? 'echo $ PATH'的结果是否包含'/ usr/local/bin'? – 2013-02-24 22:37:27

+0

我在上面的问题中添加了这两个。 – emersonthis 2013-02-24 23:05:15

回答

16

由于在/ usr/bin中之前在路径/ usr/local/bin中显示出来,在/ usr/bin中的git可执行文件将优先被考虑。在你的shell 试试这个:

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

在一个侧面说明,我强烈建议使用homebrew管理设施,如这在MacOS

+0

我在上面添加了您的测试结果以及一些相应的问题。 – emersonthis 2013-02-24 23:48:42

+0

没有它没有安装这两个版本的问题 - 您可以将该导出行添加到〜/ .bashrc中,从此之后,/ usr/local/bin中的版本将始终优先。 – 2013-02-24 23:53:13

+0

在这一点上,我还应该考虑自制还是留下我的?我对包管理员不太了解,所以我很好奇听到你为什么强烈推荐它。 – emersonthis 2013-02-24 23:54:43

3

我在Cygwin的一个类似的问题(编译为Windows Linux环境)。我会做

which git 

,它会用更新的git从源代码编译的正确位置做出反应,但不会真的使用它,直到我做了

hash -r git 

我并不了解它做了什么或为什么必须完成,但在此之后git --version回答了'1.8.2.rc0.22.gb3600c3',这显然不再是Cygwin提供的旧git。这可能不适用于OSX,但如果which git正在查找更新的二进制文件,请给它一个镜头。

+0

我在问题中加入了我的'哪个git'和'$ PATH'。这是否会改变你的建议? – emersonthis 2013-02-24 23:06:35

+0

不是,只需尝试'hash -r git',然后看看'git --version'给你带来了什么。 – Ehryk 2013-02-25 00:21:58

+0

谢谢!我不知道shell使用散列表来存储可执行文件的路径。你也可以重启shell,它也会清除哈希表。有关更多详细信息:http://crashingdaily.wordpress.com/2008/04/21/hashing-the-executables-a-look-at-hash-and-type/ – HyBRiD 2014-03-05 09:42:03

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

+0

有没有简单的方法来撤销这个改变?我只想测试另一种我尝试过的方法。 – reem 2013-09-22 21:26:01