2014-10-01 99 views
0

我想在Windows上設置一個Git服務器,但我有一些問題得到它所有的工作。需要幫助在Windows上設置一個Git服務器

我已經在本地創建了一個正常的存儲庫,並且遠程創建了一個裸存儲庫。在本地資源庫我添加了一個文本文件,並提交它,但是當我嘗試把它推到遠程倉庫,我總是得到以下信息:

fatal: protocol error: bad line length character: fata 

我搜索SO和其他來源,其中大部分暗示這是一個關於命令回聲的問題。我使用freeSSHd作爲SSH解決方案(遠程存儲庫託管在Windows服務器上),並且我嘗試將git bash和windows CMD用作命令shell。

我開始CMD與/Q禁用回聲和/K將目錄切換到存儲庫所在的目錄,所以我不認爲這會是一個問題。

使用遠程桌面,我可以將存儲庫克隆到它旁邊的文件夾,並在本地使用git bash,我可以訪問SSH shell並以相同的方式克隆存儲庫。但使用git clone ssh://<address>:/myRepo.git我總是得到上面的消息(SSH的工作文件夾與存儲庫所在的位置相同)。有誰知道發生了什麼事?如何查看觸發錯誤的命令,以及如何查看完整的錯誤消息?

回答

1

我也遇到了同樣的錯誤,使用freeSSHd作爲Windows上的git服務器的ssh解決方案。我找不到一整天的解決方案並放棄。 :(

後來我發現Bitvise這個名爲WinSSHD的另一個強大的ssh服務器運行良好,它有個人使用的免費版本,我建議你切換到它,儘管我也想知道是否有修復錯誤我們都遇到了。

要設置SSH服務器WinSSHD是非常簡單的,你可以用私有/公共密鑰接入添加虛擬賬戶。

的關鍵部分是設置爲git的服務器的SSH訪問。請請按照博客here的步驟操作。

它應該適用於Windows git客戶端。對於Mac,您可能會遇到以下錯誤。

grp.sh: No such file or directory 
fatal: Could not read from remote repository. 

要解決它,你需要在你的git的bin目錄下創建兩個文件gup.shgrp.shGIT_PATH/binGIT_PATH/libexec/git-core在系統環境變量PATH配置)使用Git的服務器。

gup.sh內容:

git-upload-pack.exe $* 

grp.sh內容:

git-receive-pack.exe $* 
+0

,我會嘗試這個明天和後的結果。謝謝。 – 2014-10-01 15:32:07

+0

我安裝了WinSSHD,它工作。我必須讓WinSSHD用戶完全控制存儲庫目錄,否則我會不斷地收到存儲庫無法訪問的錯誤。 – 2014-10-02 08:46:05