有没有办法从失败的地方继续Git克隆?

时间:2011-12-21 09:25:13

标签: git

昨天我正在克隆开放的嵌入式项目。由于连接问题,克隆失败。我再次启动命令,克隆从头开始。

有没有办法从失败的地方开始我的克隆?

3 个答案:

答案 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

克隆具有数百个子模块的回购。