2013-03-24 50 views
2

我想在運行osx 10.8.2的mac mini上設置遠程git服務器。我設置了ssh,以便客戶端可以連接到遠程主機上的git帳戶。當我嘗試從一個客戶,我得到以下錯誤執行的git推起源主:沒有找到git-receive-pack

bash: git-receive-pack: command not found

fatal: Could not read from remote repository.

(從另一個客戶端,我得到:

bash: git-upload-pack: command not found

和致命錯誤

我做了。確保git接收包和git上傳包已安裝並位於客戶端和主機的路徑上。

我該如何解決或解決問題?

回答

5

通過this post的閱讀幫助我弄清楚如何解決問題。因爲該線程假設我沒有的背景知識(以及其他新手可能沒有的知識),我總結一下並嘗試在這裏簡化答案。

Git推送顯然是通過一個「非登錄」帳戶,即沒有密碼的帳戶。見here。非登錄git帳戶的路徑變量爲與普通登錄​​帳戶的路徑不同。即使您登錄到遠程機器,鍵入echo $ PATH仍然只會顯示您的路徑,而不是非登錄帳戶的路徑。要查看非登錄帳戶的路徑是什麼,你要(從客戶端)類型:

ssh [email protected] echo \$PATH

(反斜槓保留在本地計算機截獲和擴大$ PATH變量它得到遠程前)。這樣做會返回非登錄帳戶的路徑。在我的情況下,非登錄帳戶的默認路徑不包括相關git文件的路徑。一旦我將路徑添加到git-upload & c,一切正常。通過在「.bashrc」(對於Bash),.zshenv(對於Zsh),.cshrc(對於「tcsh」)或等效的shell中設置正確的路徑,可以將遠程機器上的非登錄帳戶的默認路徑添加到默認路徑。 「

希望這可以幫助其他人解決這個問題。