当代码中包含大文件时,使用ssh进行拉取经常会因为拉取时间过长导致early eof。基本上网上能找到的方法很难解决这个问题。这时我们需要通过变通的方法解决问题。
我们可以使用http进行下载,一般情况下代码仓库是可以下载现在的,然后我们再把http协议改为ssh协议即可。
首先我们需要查看当前仓库地址
git remote -v
输出如下(HTTP 模式):
$ git remote -v
origin https://gitee.com/RTplay/YSTools.git (fetch)
origin https://gitee.com/RTplay/YSTools.git (push)
然后修改远程仓库地址为 SSH 模式
使用 git remote set-url 命令将远程地址替换为 SSH 格式:
git remote set-url origin git@gitee.com:RTplay/YSTools.git
git@gitee.com:RTplay/YSTools.git 是 SSH 地址的格式,需替换为你的实际仓库路径(与 HTTPS 路径一致)。
再次运行 git remote -v 确认已切换为 SSH 模式:
$ git remote -v
origin git@gitee.com:RTplay/YSTools.git (fetch)
origin git@gitee.com:RTplay/YSTools.git (push)
当然,也可以将ssh切换为HTTP:
git remote set-url origin https://gitee.com/RTplay/YSTools.git
***以上的方法只针对由于代码仓库中因为有大文件导致下载失败的问题,对于SSH 配置错误问题,网络不稳定问题, SSH 超时中断问题,客户端版本过旧问题都无法解决。