1

我们决定使用我们的 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 和映射的 W: 驱动器号验证了我们的代码在 SFTP 站点上。我们兴高采烈地告诉老板,我们用 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 工具来管理我们的文件。进行初始签入的​​一台开发人员机器是尝试进行后续推送的开发人员机器。

4

1 回答 1

-1

好的,我发现了如何解决问题。问题似乎出在我使用的 sshfs 程序上,而不是 GIT。为了让它工作,我下载了 Eldos Net Drive Free

然后,在单击配置文件设置按钮后,我将超时设置设置为 60 秒(只是为了确保可能没有必要)。我几乎可以使用 GIT 推送,但我收到一条错误消息,提示“无法设置 refs/heads/master”。我检查了存储库,HEAD 文件没有任何问题。最后,似乎 GIT 尝试执行一些文件移动/重命名操作,映射的 SFTP 驱动器不支持该操作。但是,就我而言,修复很容易。我再次进入配置文件设置(针对 Eldos SFTP 网络驱动程序),并在“移动前删除现有目标”复选框中打勾。我运行了“git push origin master”命令,它通过了。真的很光滑。所以,现在我们有一个使用 SFTP 站点的共享 GIT 存储库,

更新:好的,Eldos Net Drive 似乎不再工作并且不再受支持。此解决方案将不再作为使用 Eldos Net Drive 将驱动器映射到 SFTP 服务器的修复程序提供。此外,其他 SFTP 驱动器映射工具出现的几个错误现在出现在 Eldos Net Drive 上。新版 Eldos Net Drive 中可用的设置均未解决此问题。

于 2015-01-19T23:56:54.413 回答