2015-01-14 47 views
1

我們決定將我們的SFTP站點作爲我們的Windows開發機器的裸GIT存儲庫。我們能夠創建一個存儲庫,將其克隆到開發機器,並推入我們的初始簽入。在以後的日子後續推都失敗了:GIT從Windows機器推送到由win-sshfs映射的SFTP站點失敗

$ git push origin master 
Counting objects: 21, done. 
Delta compression using up to 8 threads. 
Compressing objects: 100% (20/20), done. 
remote: error: insufficient permission for adding 
an object to repository database./objects 
remote: fatal: failed to write object 
fatal: sha1 file '<stdout>' write error: Broken pipe 
error: failed to push some refs to 'w:/mvc-solution.git' 

我們的設置:

我是在Windows機器上,有一個驅動器字母W映射到我們的網站SFTP。我能夠使用win-sshfs將我的驅動器W:映射到sftp站點。

我們使用msysgit在我們的windows計算機上安裝了git。 git version這樣說:

git version 1.9.5.msysgit.0 

我們做了cd /w讓我們的存儲庫位置,然後跑去git init --bare mvc-solution.。然後,我們將存儲庫克隆到開發人員計算機(git clone mvc-solution.git c:/myDeveloperCodeRepo),然後更改爲開發人員目錄(cd c:/myDeveloperCodeRepo)。我們將源代碼放入目錄,運行git add ...git commit -m 'Initial Checkin'。然後我們運行git push origin master沒有任何問題。我們通過FileZilla驗證了我們的代碼是在SFTP站點上,還通過映射的W:盤符進行了驗證。興高采烈,我們告訴我們的老闆,我們用SFTP網站創建了一個存儲庫來管理我們的Windows代碼。

然後,一天後,我們對開發人員機器代碼進行了更改(添加了包含一些文件的目錄 - 電子表格,文本文件和圖像)。我們添加了文件,提交它們,然後嘗試運行git push origin master。沒有快樂。相反,我們收到了上面的消息(...failed to push...)。換句話說,無法將文件推送到sftp裸倉庫了。

我們重新安裝了映射的驅動器連接(win-sshfs),沒有任何問題,並確保我們可以使用Windows資源管理器和W:驅動器訪問sftp站點。我們也試過運行git config core.sharedRepository true;我們嘗試了不同的互聯網連接,通過不同地點的wifi和以太網。沒有運氣。再次,我們不在Linux,Mac或任何其他Unix類型的機器上。除了GIT之外,我們沒有使用任何類似unix的shell,我們只是使用典型的Windows工具來管理我們的文件。 相同進行初始簽入的開發人員計算機是試圖執行後續推送的開發人員計算機。

回答

-1

好的,我發現如何解決這個問題。這個問題似乎與我使用的sshfs程序有關,而不是GIT。爲了得到這個工作,我下載了Eldos Net Drive Free

然後,我將超時設置設置爲60秒(只是爲了確認,可能不需要),點擊配置文件設置按鈕後。我幾乎可以用GIT來推送,但是我收到一條錯誤消息,提示「無法設置參考/頭/主」。我檢查了倉庫,HEAD文件沒有任何問題。最後,GIT會嘗試執行一些文件移動/重命名操作,這在映射的SFTP驅動器上不受支持。但是,就我而言,修復很簡單。我再次進入配置文件設置(對於Eldos SFTP網絡驅動器程序),並在複選框中勾選「在移動前刪除現有目標」。我運行了「git push origin master」命令,並通過了。這真的很漂亮。因此,現在我們有一個使用SFTP站點的共享GIT存儲庫,我們使用該網絡驅動器程序映射該站點,然後使用Windows Git程序運行GIT命令。

更新: 好的,似乎Eldos Net Drive不再起作用,不再支持。該解決方案將不再可用作使用Eldos Net Drive將驅動器映射到SFTP服務器的修復程序。另外,Eldos Net Drive現在還會出現其他SFTP驅動器映射工具出現的幾個錯誤。新版本的Eldos Net Drive中沒有可用的設置修復了這個問題。

+0

我很遺憾地說你的更新至少是誤導性的。 SFTP網絡驅動器積極開發和維護。但是,沒有爲免費版本提供支持(並且從未提供任何支持)。至於你的問題,他們似乎是由服務器造成的,而不是客戶端造成的(因爲多個客戶端不能在同一臺服務器上工作)。 –