我有 ftp 服务器,但无法在其上安装其他软件。是否可以在其上创建 git 存储库并克隆到本地 PC?我尝试创建本地存储库并将其复制到 ftp。它会起作用吗?如何从 ftp 服务器克隆?
4 回答
StackOverflow 上还有其他各种问题讨论这个主题,例如:
...可能有适合您情况的解决方案。
您没有说您使用的是什么操作系统,但如果它是基于 Linux 的,我会尝试使用FUSE + fuseftp将 FTP 服务器安装为本地文件系统的一部分。如果您使用的是 Mac OS,您可以类似地尝试MacFuse。(nb 我自己从未尝试过 fuseftp,所以我不能推荐或不推荐它。)毫无疑问,Windows 也有类似的东西。
然后你应该能够git init --bare
在挂载的目录中运行并从中推送和拉取,因为它是本地存储库。您还应该启用示例post-update
挂钩,以便在每次推送后运行 - 否则人们在使用存储库 URLgit update-server-info
与服务器交互时会遇到问题。ftp://
如果 Git 在服务器上运行,它将起作用。
但从你描述的情况来看,我猜不是。
是的,它应该工作。请参阅this other answer,以及如何操作。
它与通过 HTTP 访问基本相同,只是使用ftp://
URL 中的协议说明符:
git clone ftp://username:password@ftp.server.net/repos/project.git
笔记:
您只要求克隆,但如果您还需要将任何内容写回远程存储库(即push也一样),那么您将无法使用裸 FTP 设置并且未经许可在服务器上运行其他软件。
正如其他 SO 答案(上面链接)或此处的这篇文章(关于无法访问的文件,取决于 FTP 服务器/配置)所暗示的,FTP 访问并非没有警告。
git-clone 手册页说 FTP 传输已“弃用”,出于各种原因应避免使用。那张纸条希望只是一个错误,因为
a) 惩罚那些只有 FTP 作为共享 repo 的唯一选择的可怜的家伙,似乎是一个非常不友好的想法。(其他有其他选择的人无论如何都会更喜欢使用这些。)
b) 似乎与gitremote-helpers 手册页不一致,该手册页也明确提到了 ftp 传输,但没有任何反对意见。
c) 每个传输都有其限制/优点,FTP 也不例外。(通过
capabilities
运输助手的命令,工具也可以毫无问题地协商,使用什么,不使用什么。)希望 git 克隆将继续在 FTP 上工作(也许这个可怕的评论实际上意味着 git 本身并不支持它),只要 FTP 仍然是一个实用的替代方案。
您可以使用git-ftp 项目工具将此部署到 ftp 服务器。它易于使用,可以安装在本地服务器上进行远程部署。这是对我来说很好的基本配置:
- git config git-ftp.user YOUR_FTP_USERNAME # ftpuser
- git config git-ftp.password YOUR_FTP_PASSWORD # ftppass
- git config git-ftp.url YOUR_FTP_SERVER # ftp.domain.com, might be a path to subdirectory ftp.domain.com/public_html
- git config git-ftp.syncroot public_html/ # optional if you only want to push a part of your repository
- git ftp init
- git ftp push