我們決定將我們的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工具來管理我們的文件。 相同進行初始簽入的開發人員計算機是試圖執行後續推送的開發人員計算機。
我很遺憾地說你的更新至少是誤導性的。 SFTP網絡驅動器積極開發和維護。但是,沒有爲免費版本提供支持(並且從未提供任何支持)。至於你的問題,他們似乎是由服務器造成的,而不是客戶端造成的(因爲多個客戶端不能在同一臺服務器上工作)。 –