【发布时间】:2013-10-21 14:02:47
【问题描述】:
我们使用git to distribute an operating system and keep it upto date。我们无法分发完整的存储库,因为它太大(>2GB),所以我们一直在使用浅克隆(~300M)。但是recently when fetching from a shallow clone, it's now inefficiently fetches the entire >2GB repository。这是对部署带宽的一种站不住脚的浪费。
git 文档说您不能从浅存储库中获取,尽管这绝对不是真的。是否有任何解决方法可以使git clone --depth 1 能够获取它的变化?或者其他一些策略来保持分布大小尽可能小,同时让所有位 git 需要进行更新?
我尝试从--depth 20 克隆以查看它是否会更有效地升级,但没有成功。我也确实查看了http://git-scm.com/docs/git-bundle,但这似乎产生了巨大的捆绑。
【问题讨论】:
-
“但这似乎会产生巨大的捆绑”:仅适用于第一个。之后,您可以创建增量捆绑包。
-
我的初始分布不可能很大...
-
您将不得不再次尝试使用 Git 1.9/2.0(2014 年第一季度)获取您的浅层克隆:这些操作现在效率更高。见my answer below
-
Git 2.5(2015 年第二季度)支持单次提取提交!我在下面编辑了我的答案,现在引用“Pull a specific commit from a remote git repository”。
标签: git github shallow-clone