【问题标题】:git push *to* a shallow clone, why not?git push *to* 一个浅克隆,为什么不呢?
【发布时间】:2013-11-25 08:48:42
【问题描述】:

所以每个人似乎都在问为什么不能一个浅层克隆(而我实际上已经实现了这一点)。然而,我感兴趣的是将推送到浅层服务器。

这不起作用(我在我的服务器中通过“git clone --bare --depth 1 the_original_repo”提供了 git repo,我无法从中克隆,因为它说它是浅克隆)。但我在想,如果尝试使用与创建浅层克隆相同的深度进行克隆,为什么会有限制?

我的最终目标是这样的设置:

          (shallow-SERVER)
           /            \
(full-history-client)  (shallow-client)

这样,两个浅节点都没有历史记录,但会有一个客户端拥有完整的历史记录。如果浅客户端推送到浅服务器,这意味着它们的深度会增加,但理想情况下,当完整历史客户端从服务器拉出时,深度会再次减小。

我想这在现在的 git 上是不可行的,对吧?

【问题讨论】:

    标签: git git-push git-clone git-bare


    【解决方案1】:

    只要你有足够的资源来生成必要的包,你就没有理由不能从部分存储库中推送或获取,我也做过。

    但您不能设置部分存储库来为其他人服务。

    真正的部分 repos 是非常特殊的用途,对于大多数用途,您需要一个(至少一个)本地共享 objects 目录的路径,其中包含.git/objects/info/alternates 中的完整历史记录。那些甚至根本不需要在回购中。我不会称其为 kludge,它使意外 gc 完全不可能,但可能还有其他思想流派。

    任何连一整包都买不起的地方都不能作为任何类型的共享仓库,

    【讨论】:

    • 感谢您的回答,但我有点不明白:(
    猜你喜欢
    • 2020-06-26
    • 2013-04-28
    • 2011-10-17
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多