【问题标题】:Git repository on ftp serverftp 服务器上的 Git 存储库
【发布时间】:2011-07-05 16:49:13
【问题描述】:

我有 ftp 服务器,但无法在其上安装其他软件。是否可以在其上创建 git 存储库并克隆到本地 PC?我尝试创建本地存储库并将其复制到 ftp。它会起作用吗?如何从 ftp 服务器克隆?

【问题讨论】:

    标签: git ftp git-clone


    【解决方案1】:

    StackOverflow 上还有其他各种问题讨论这个主题,例如:

    ...可能有适合您的情况的解决方案。

    你没有说你使用的是什么操作系统,但如果它是基于 Linux 的,我会尝试使用FUSE + 将 FTP 服务器作为本地文件系统的一部分挂载fuseftp。如果您使用的是 Mac OS,同样可以尝试MacFuse。 (n.b. 我自己从未尝试过 fuseftp,所以我无法推荐或不推荐它。)毫无疑问,Windows 也有等价物。

    那么你应该只能够在挂载的目录中运行git init --bare 并从中推送和拉取,因为它是本地存储库。您还应该启用示例 post-update 挂钩,以便在每次推送后运行 git update-server-info - 否则人们在使用 ftp:// 存储库 URL 与服务器交互时会遇到问题。

    【讨论】:

      【解决方案2】:

      如果 Git 在服务器上运行,它将工作。

      但根据你的描述,我猜不是。

      【讨论】:

        【解决方案3】:

        是的,它应该可以工作。请参阅this other answer,了解如何操作。

        与通过HTTP访问基本相同,只是在URL中使用ftp://协议说明符:

        git clone ftp://username:password@ftp.server.net/repos/project.git

        注意事项:

        1. 您只要求克隆,但如果您还需要将任何内容写回远程仓库(即push,也),那么您在没有安装 FTP 且未经许可在服务器上运行其他软件的情况下不走运。

        2. FTP 访问并非没有注意事项,正如其他 SO 答案(上面链接)或 this post here(关于无法访问的文件,取决于 FTP 服务器/配置)所暗示的那样。

        3. git-clone man page 表示 FTP 传输已“弃用”,出于各种原因应避免使用。那个注释是一个希望只是一个错误,因为

          a) 惩罚那些只有 FTP 作为共享 repo 的唯一选择的可怜人,似乎是一个非常不友好的想法。 (其他有其他选择的人无论如何都会更喜欢使用这些。)

          b) 似乎与gitremote-helpers man page 不一致,gitremote-helpers man page 也明确提到了 ftp 传输,没有任何反对意见。

          c) 每个传输都有其限制/优点,FTP 也不例外。 (通过传输助手的capabilities 命令,工具也可以毫无问题地协商,使用一个,什么不使用。)

          希望 git 克隆将继续通过 FTP 工作(也许那个可怕的评论实际上意味着 git 不支持它natively),只要 FTP 仍然是一个实用的替代方案。

        【讨论】:

          【解决方案4】:

          您可以使用git-ftp project 工具将此部署到 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
          

          【讨论】:

            猜你喜欢
            • 2014-10-18
            • 2016-12-16
            • 2011-05-19
            • 1970-01-01
            • 2011-01-26
            • 2017-07-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多