2012-05-04 11 views
42

我已經安裝了XCode,因此git也在那裏。因爲我想要使用自制軟件安裝的更新版本的git。用Xcode替代git與自制軟件版本

但混帳的自制版本不會被調用,因爲我的道路看起來像這樣

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin 

這意味着/usr/bin/git/usr/local/bin/git之前,百達調用。

有沒有辦法改變這種情況,而不改變PATH?

+0

我創建了這個腳本讓Xcode在/ usr/local/bin中使用Git的本地安裝。一探究竟。 https://gist.github.com/4659915 – Baub

回答

55

Xcode實際上是使用存儲在/Applications/Xcode.app/Contents/Developer/usr/bin中的GIT。當您將命令行工具安裝爲Xcode安裝的一部分時,將在/usr/bin中安裝相同版本的GIT。所以,你將無法改變Xcode正在使用的內容(除非你願意使用Xcode包的內容)。如果從終端應用,您要使用自制軟件安裝GIT則有兩種選擇:

  1. 參考GIT與作爲/usr/local/bin/git ...的完整路徑,這種情況下,你可以像alias mgit=/usr/local/bin/git創建別名,然後使用mgit ...從終端
  2. 如果您使用zsh文件(或每次在命令行啓動終端),請將路徑更改爲PATH=/usr/local/bin:$PATH,即.bashrc.zshrc
+1

感謝您的答案。畢竟我改變了'/ etc/paths'中的'PATH'。 – BetaRide

+0

相關:http://stackoverflow.com/questions/5364614/is-there-a-problem-with-having-usr-local-bin-before-usr-bin-on-the-path-in-os –

+4

開啓OS X Mountain Lion,我使用「.bash_profile」而不是「.bashrc」 - 我已經這麼做了很多年,雖然我不知道我在哪裏學到了它,或者它爲什麼可以工作(而.bashrc沒有。 ) –

13

由於Xcode中硬編碼了自己是安裝在/Applications/Xcode.app/Contents/Developer/usr/bin/git的Git版本,我設法利用此解決招:

  1. 變化到Xcode的目錄:

    cd /Applications/Xcode.app/Contents/Developer/usr/bin

  2. 像這樣重命名Xcode的git:

    sudo mv ./git ./git-xcode-usr-bin

  3. 鏈接到我自己的git它是通過自制安裝:

    sudo ln -s /usr/local/bin/git ./git

而且我做了/usr/bin/git

這將acctually鏈接/usr/local/Cellar/git/1.8.0/bin/git同樣的事情(因爲我m目前使用git 1.8.0)

Cert只是這可能會導致一些其他問題,比如當我在將來升級自制軟件git時,它不適用於我:(我必須創建一個新的鏈接。

我這樣做是因爲我想在這裏解決我自己的問題13177203。並且在長時間搜索StackOverFlow後,我終於得到了這個解決方案。

+2

雖然一般情況下我避免這樣的軟件包搞亂,但我確實使用了這個答案。由於git 1.8中'push.default'選項的改變,Xcode給了我下面的錯誤,並且不允許我將資源添加到我的項目中:'error:push.default的格式錯誤:簡單。錯誤:必須是無,匹配,跟蹤或當前之一。致命的:壞配置文件第7行.gitconfig'。另一種選擇是將我的gitconfig改回1.7設置。 – towynlin

7

如果您使用的是fish shell而不是bash,則可以通過將以下內容添加到~/.config/fish/config.fish來指向您的首選git二進制文件。

function git 
    /usr/local/bin/git $argv; 
end 
+0

工作就像一個魅力!感謝您的提示。我不知道你可以在魚殼裏做到這一點。這非常有用。 – Leif