GIT推送失败从Windows机器到win-sshfs映射的SFTP站点

时间:2015-01-14 23:15:27

标签: windows git sftp msysgit sshfs

我们决定将我们的SFTP站点用作Windows开发机器的裸GIT存储库。我们能够创建一个存储库,将其克隆到开发机器,然后推送我们的初始签入。后来的推迟失败了:

$ 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 个答案:

答案 0 :(得分:-1)

好的,我发现了如何解决问题。问题似乎与我使用的sshfs程序有关,而不是GIT。为了实现这一点,我下载了Eldos Net Drive Free

然后,在单击配置文件设置按钮后,我将超时设置设置为60秒(只是为了确保,可能没有必要)。我几乎可以用GIT推送,但是我收到一条错误消息“无法设置refs / heads / master”。我检查了存储库,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中没有可用的设置解决了这个问题。