【发布时间】:2011-12-21 09:25:12
【问题描述】:
我昨天正在克隆打开的嵌入式项目。由于连接问题,克隆失败。我再次启动命令并从头开始克隆。
有什么方法可以让我的克隆从失败的地方开始?
【问题讨论】:
标签: git
我昨天正在克隆打开的嵌入式项目。由于连接问题,克隆失败。我再次启动命令并从头开始克隆。
有什么方法可以让我的克隆从失败的地方开始?
【问题讨论】:
标签: git
很遗憾,这是无法做到的。见
Continue interrupted git clone
没有。 git clone 无法重新启动。你需要
rm -rfcommon,然后重启再从头克隆。
Continue git clone after interruption
很遗憾,我们没有足够的 GSoC 插槽供项目使用 可重新启动的克隆。
不过,在列表中讨论了如何实现这一点。
不幸的是,我们这些知道原生协议如何工作的人 无法就如何重新启动它达成一致。如果你 认真阅读有关此主题的档案,您会看到 Nico 和我 不同意如何做到这一点。 IIRC Nico 的立场是,它不是 真的可以实现重启。
您必须重新启动克隆。
【讨论】:
由于 git 服务器和本地计算机之间的连接不佳,git clone 可能会持续数小时然后失败。重新启动克隆只是重新启动进程,这很可能再次失败。
作为一种解决方法,请使用与 git 存储库和本地 ssh 访问有良好连接的托管服务器。克隆到服务器,然后通过 ssh rsync 到本地,并根据需要恢复 rsync。
在您的云服务器上:
`git clone -n git://<repo>.git`
在您的本地计算机上(如果失败,请重复以继续):
`rsync -a -P -e ssh <user>@<cloud-server>:<path-to-cloned-repository> <local-target-path>`
【讨论】:
注意:对于包含子模块的项目,git 2.9.1(2016 年 7 月)可以提供帮助。
参见commit bb9d91b(2016 年 6 月 9 日)和 commit 665b35e(2016 年 6 月 10 日)Stefan Beller (stefanbeller)。
(由 Junio C Hamano -- gitster -- 合并于 commit bb2d8a8,2016 年 7 月 11 日)支持>
submodule--helper: 初始克隆学习重试逻辑每一个尝试被克隆的子模块,都会被重试一次 克隆所有其他子模块后失败的情况。
这有助于减轻短暂的服务器故障并增加可靠的机会
如果重试失败,错误信息为:
Failed to clone '%s' a second time, aborting
大量克隆包含数百个子模块的存储库。
【讨论】: