2013-02-24 76 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