通过 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 需要很长时间才能完成的主要内容,如果未能解决你的问题,请参考以下文章

git的clone

windows系统git使用ssh方式和gitee/github进行同步

ssh git clone 超时

git命令之git clone用法

git clone ssh与https

git clone ssh与https