通过 SSH 进行 git clone 需要很长时间才能完成
Posted
技术标签:
【中文标题】通过 SSH 进行 git clone 需要很长时间才能完成【英文标题】:git clone via SSH takes forever to complete 【发布时间】:2021-12-07 14:57:47 【问题描述】:我试图用git clone git@github.com:someorg/my-repo.git
克隆一个repo,但在指示Cloning into 'my-repo' ...
之后该过程需要永远完成。我试过了:
-
使用
ssh-keygen -t rsa
生成密钥
将位于 ~/.ssh/id_rsa.pub
的公钥添加到我的 GitHub 帐户
使用eval "$(ssh-agent -s)"
设置ssh 代理并使用ssh-add ~/.ssh/id_rsa
添加我的密钥
克隆存储库
【问题讨论】:
除非有人故意减慢 ssh 流量并加速其他流量,否则你使用什么协议来克隆并不重要:你只有一个大存储库和/或你用来吸收副本。 【参考方案1】:听起来你会从做一个 shallow 克隆中受益:
例如:
git clone --depth 10 https://github.com/torvalds/linux.git
来自git
手册页:
--depth <depth>
Create a shallow clone with a history truncated to the specified number of commits...
...
...
这不会为您提供 repo 的完整 git 历史记录,但可能会满足您的需求。首先,它会为您提供最新版本的存储库。
由于将--depth
标志添加到您的clone
命令可以减少下载的数据量,您应该会看到运行克隆所需的时间减少了。
克隆时间的减少将随此特定存储库的大小和历史记录而异。您可以稍后使用以下命令下载剩余的历史记录:
git fetch --unshallow
更多详情请参阅How to convert a Git shallow clone to a full clone?。
【讨论】:
感谢您的回答,但经过调查,问题不是由要克隆的 repo 大小引起的,而只是由临时 ssh 连接问题引起的。重新启动我的机器已恢复连接。以上是关于通过 SSH 进行 git clone 需要很长时间才能完成的主要内容,如果未能解决你的问题,请参考以下文章