【问题标题】:Cloning git bundle over http(s)通过 http(s) 克隆 git 包
【发布时间】:2017-10-06 15:38:48
【问题描述】:

是否可以通过 http 克隆 git bundle? 当我尝试这样做时,我得到了:

$ git clone http://127.0.0.1:8888/repo.bundle
Cloning into 'repo.bundle'...
fatal: repository 'http://127.0.0.1:8888/repo.bundle/' not found

这样做的原因是为了避免压缩服务器上的存储库(仅提供文件),并且我们被用户的应用程序限制为git clone

【问题讨论】:

    标签: git git-bundle


    【解决方案1】:

    我不知道怎么做你要求的。捆绑包的最初目的是弥补无法“在线”访问存储库(例如 HTTP 连接等)的情况;所以我怀疑是否会对这样的用例进行任何思考。

    我收集到您想要的是准备一个您预计需要传输的存储库子集,以便对该子集的请求不会产生传输额外数据或将需要与不需要的数据分开的成本。在这种情况下,您可能会考虑准备一个浅克隆而不是捆绑包。请注意,要从浅克隆中获取的每个头的历史记录必须包含至少一个已在执行获取的 repo 中的提交。例如,如果你有

    x -- x -- ... huge history ... -- O -- x -- x <--(master)
                                       \
                                        A -- B -- C <--(some_branch)
    

    如果你想通过这种方式分享AC,你会

    git clone --depth=4 -b some_branch url/of/origin some_branch_repo
    

    因为深度为 4,这将包括 OABC——这意味着对 some_branch 的提取可以接收到 AC

    【讨论】:

      猜你喜欢
      • 2012-03-01
      • 2013-01-19
      • 2014-02-26
      • 2011-05-17
      • 1970-01-01
      • 2012-02-28
      • 1970-01-01
      • 2018-12-28
      • 1970-01-01
      相关资源
      最近更新 更多