git - 暂停/恢复回购克隆
问题描述
在在家工作期间,我的带宽不足,无法克隆 repo。我已经尝试了大约 10 次来克隆 repo,但没有运气。
Receiving objects: 91% (54330/59387), 445.67 MiB | 44.00 KiB/s
Receiving objects: 91% (54506/59387), 445.80 MiB | 46.00 KiB/s
Receiving objects: 91% (54635/59387), 445.86 MiB | 45.00 KiB/s
Receiving objects: 92% (54637/59387), 445.86 MiB | 45.00 KiB/s
Receiving objects: 92% (54721/59387), 445.92 MiB | 38.00 KiB/s
Receiving objects: 92% (54782/59387), 445.99 MiB | 43.00 KiB/s
fatal: the remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
有什么办法可以接收剩余的约 8% 的物品?让我知道 git clone 是否有任何属性可以帮助我解决这个问题。即使在 Visual Studio 或 Visual Studio Code 中有实现相同的方法,我也可以。
我看过“如何在一个不稳定的连接上完成一个大项目的 git 克隆?” . 它解释了如果你要从头开始怎么办。我正在寻找的是如何在不重新启动克隆的情况下继续前进。
解决方案
尝试从浅克隆开始:
git clone --depth 1 <repo>
然后,您可以尝试取消 repo :
git fetch --unshallow origin
如果失败,您可以尝试首先迭代增加深度:
git fetch --depth 10 origin master
git fetch --depth 20 origin master
...
并可能一一获取分支:
git fetch --depth 1 origin branch1
git fetch --depth 10 origin branch1
...
直到git fetch --unshallow
通过。
另一种方法是从任何现有克隆中复制文件。
假设您可以通过 ssh 访问没有带宽问题的服务器:
ssh <server-with-bandwidth>
[remote]$ git clone <repo>
然后,您只需将remote:repo/
(包括其.git/
目录,其中包含所有克隆的历史记录)的内容复制到您自己的 PC 上。
您可以使用scp
, sftp
, rsync
... 或任何允许在失败时恢复的工具。
显然,请遵循您公司的安全准则:选择一个可以有效克隆代码的远程服务器,在使用后删除无用的克隆,等等......
推荐阅读
- javascript - 使用 jQuery 或 js 在导航链接点击时开始和停止背景视频?
- mysql - 在 WHERE 条件中使用 UNION 语句插入选择
- php - 动态更改(或用户更改)Wordpress 中的列数
- typescript - 打字稿检查对象是否可迭代
- angular - 将值设置为没有 NgModel、反应式表单的表单控件?
- python - 来自lxml python的fromstring函数出错
- python - 如何根据阈值在 Python 中对多列进行分组并创建新列
- vue.js - Vue中的迷你枢轴网格,没有外部库
- python - 如何在相当平衡的二元分类中解决非常高的误报率?
- angular - 在组件之间共享变量 angular