2011-10-04 22 views
6

我期待從默認usr/local/git/bin/git目錄從http://git-scm.com/網站安裝程序包安裝到不同的自定義位置安裝的Git。設置定製的Git安裝

例如,我只是想複製的usr/local/git的內容/Users/braitsch/my-git和我的PATH變量更新爲/Users/braitsch/my-git/bin現在Git的不快說,它無法找到它的一些命令,如git -stash

我也只是嘗試設置./git exec-path=/Users/braitsch/my-git/libexec/git-core但是這似乎並沒有服用。

所以我對你們的問題是你會如何設置自定義的Git的安裝無需使用包管理器或內置預安裝的?我很想找到一個方案,我可以輕鬆地在Mac上使用這兩個Windows &。提前致謝。

- 更新 - 如果移動的被通過包安裝到其他位置安裝在usr/local/git目錄

看起來Git的藏匿處(可能還有其他命令)將失敗。有沒有人有任何建議如何解決這個問題?我試圖從一個自定義位置運行Git,但是看起來這不可能通過http://git-scm.com網站上的構建?

+0

你沒有更新到'/用戶/ braitsch /我 - 的git/bin'你的路徑,對不對?不是'/ Users/braitsch/my-git/bin/git'? – VonC

+0

我做到了,對不起,這是一個錯字。剛做了修復。一切似乎都與這個設置一起工作,除了git stash ..你碰巧知道,Git需要包含在程序包安裝程序創建的'usr/local/git'目錄中嗎?Git是否可以擴展到文件系統上的其他依賴項?再次感謝。 – braitsch

+0

你爲'git stash'輸入了什麼確切的命令? (和確切的錯誤信息?)(因爲你確實用' - '寫了'git -stash') – VonC

回答

3

什麼對我來說(包括git stash)工作正常是克隆Git倉庫,例如搭配:

cd 
git clone git://github.com/gitster/git.git 
cd git 
make 

(我以前安裝了sudo apt-get build-dep git構建依賴關係,這將在最近的一個基於Debian的發行工作 - 否則,如果你得到一個編譯錯誤,你只好用安裝Git的構建依賴任何機構通常使用)

然後你就可以調用這個混帳有:

$ export GIT_EXEC_PATH=~/git/ 
$ ~/git/git --version 
git version 1.7.7.rc0.72.g4b5ea 

...或使用~/git/git --exec-path=/home/mark/git而不是環境變量。

您可以在任何地方內置源代碼樹移動,並且它仍然有效,例如:

$ mv ~/git ~/tmp/ 
$ export GIT_EXEC_PATH=~/tmp/git/ 
$ ~/tmp/git/git --version 
git version 1.7.7.rc0.72.g4b5ea 
+0

嗨馬克,感謝您的回覆,但不幸的是這不適合我。嘗試將「--exec-path」設置爲任何內容都會引發錯誤,例如'git --exec-path =/Users/braitsch/test-dir/git'並通過export GIT_EXEC_PATH設置ENV變量似乎被忽略。看來我只能隱藏,現在克隆(通過https)工作,當且僅當我離開Git在我編譯它的同一位置。我是否錯過了上面的說明?再次感謝你的幫助。 – braitsch

+0

爲了擴大這一點,在將編譯代碼請求的目錄移動到'git clone'和'git fetch'之後,使用'fatal對https進行故障轉移:無法找到'https''的遠程幫助程序我相信因爲移動目錄會打破路徑到libcurl。 – braitsch

+0

沒關係,我想我有這個工作。將在幾個更新... – braitsch

-3

使用一個虛擬機(VirtualBox是免費的),並建立和Linux機器上使用。已經建立了自己的,你可以很容易地切換版本。

希望這會有所幫助。

+1

虛擬機只是用於定製git安裝位置? –

+0

工作得很好 –

+1

我做到了這一點,而且我會說盡管它本身工作得很好,但從長遠來看,這種解決方案很不明顯。 – amn

2

我只是從源代碼重新構建它。從http://git-scm.com/獲取壓縮包,然後使用./configure --prefix=/path/to/my-git/構建它。

編輯:我不知道把我的頭如何做一個重新定位的git的頂部安裝,但如果你用一個特定的,獨特的,前綴構建它,安裝它,然後通過安裝grepping啓動文件的前綴(即,grep -R my-git /path/to/my-git/),這可能是一個很好的起點。

+0

我投這個票。如果你繞過你的軟件包管理器,最好完全繞過它,自己做一切。 –

+0

謝謝你們。我真正想要做的是找到或生成一個自包含的二進制或包,我也可以移植到其他機器。我正在構建Git客戶端,並試圖避免強制用戶手動安裝Git或其他依賴項以使Git在其計算機上運行的情況。如果我從源代碼編譯不會將我創建的實例綁定到特定的機器上嗎? – braitsch

+0

謝謝大衛,我會給你一個鏡頭,乾杯。 – braitsch