昨天我正在克隆开放的嵌入式项目。由于连接问题,克隆失败。我再次启动命令,克隆从头开始。
有没有办法从失败的地方开始我的克隆?
答案 0 :(得分:11)
不幸的是,这无法做到。参见
Continue interrupted git clone
没有。 git clone无法重启。您需要
rm -rf
常见,然后重新启动然后从头开始克隆。
Continue git clone after interruption
不幸的是,我们没有足够的GSoC插槽供项目允许 可重启的克隆。
但是,有关如何在列表中实现此问题的讨论。
不幸的是,我们这些知道本机协议如何工作的人 无法就如何重新启动达成协议。如果你 真的读过这个主题的档案,你会看到Nico和我 不同意如何做到这一点。 IIRC Nico的立场是,它不是 真的可以实现重启。
您必须重新启动克隆。
答案 1 :(得分:2)
由于git服务器与本地计算机之间的连接不良,git克隆可能会持续多个小时,然后失败。重新启动克隆只会重新启动该过程,这很可能再次失败。
作为一种解决方法,请使用托管服务器,该服务器与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>`
答案 2 :(得分:-1)
注意:对于包含子模块的项目,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
克隆具有数百个子模块的回购。