Git无法推送到FTP服务器。

14

我在使用ftp上传git时遇到了问题。

目前我有:

  • FTP服务器,支持主动和被动FTP;
  • 一个裸的git仓库,只有一个提交

该仓库是本地创建后发送到服务器的。 我必须使用git update-server-info使其正常工作。现在我可以克隆至我的新仓库并执行pull操作,但我不能push。每次尝试时,git都会显示:

error: Cannot access URL ftp://f***@w*****/repo/, return code 3 fatal: git-http-push failed

请问是否有人能帮助我?

问候 Florian


我不禁注意到,将HTTP推送到FTP服务器似乎是一种尴尬的协议混合。 - user502515
你从哪里获取了git二进制文件?我认为它必须使用curl支持编译才能使FTP工作。 - J-16 SDiZ
@user502515,这是正常的。Git在(愚蠢的)HTTP和FTP上使用相同的后端。 - J-16 SDiZ
curl 只影响 push 吗?否则,pull 也不应该工作。 - Tornado
2个回答

15

嗯,不,我计划将FTP服务器用作“中央”存储库。据我所知,几个月前添加了FTP到Git(请参见http://www.kernel.org/pub/software/scm/git/docs/git-push.html#URLS)。我尝试了msysgit和标准的Ubuntu 10.04包(1.7.0.4)进行测试。 - Tornado
@Tornado:我确实阅读了git push的手册,但我没有找到任何其他迹象表明ftp支持push(fetch是的,clone也是的,但push呢?) - VonC

4

@VonC: 看起来你是对的,我在IRC上和一些GIT的人聊过,他们告诉我也是这样。FTP拉取可以使用,FTP推送不行。但无论如何,你的确认线程是我的问题可能的解决方案,因为我可以使用webdrive/netdrive(在linux上使用curlftpfs)让git认为远程仓库是一个本地文件夹。目前我只能看到这个解决方案。

谢谢!


有趣的是,您可以稍后扩展此答案,包括一些实现和设置细节,以实现远程存储库安装。 - VonC
2
好的,以下是一些细节:到目前为止,我只在Windows下尝试过,因为在我的eee-pc上,Linux真的很糟糕(主要是电池寿命大大缩短)。但无论如何,在Windows上都很简单:我使用了Netdrive,因为有一个免费家庭使用许可证。通过netdrive,我连接到我的ftp服务器(将其设置为某个驱动器号),然后将这个现在"本地"驱动器用作远程仓库(在我的工作目录中使用git clone x:/repo.git)。就是这样。我认为在Linux下使用curlftpfs挂载某个ftp目录也可以。 - Tornado

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接