1.拉取的项目很大,如1G以上,此时报错early EOF
具体报错如下:
Cloning into 'csp-doc'...
remote: Counting objects: 6061, done.
remote: Compressing objects: 100% (4777/4777), done.
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: the remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
按照网上的解决方法
未解决我的问题,但有可能其他人使用有效,也记录了。
1.设置post请求的缓存区大小,要求缓存区大小大于git项目大小。
该值计算单位为字节(Byte),如1M=1024KB=1024*1024字节
示例:设置500M
git config --global http.postBuffer 524288000
2.设置git的最低网速和最低网速下载时间
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999
3.设置压缩
git config --global core.compression -1
4.查看设置
git config --list
5.先浅层clone(只拉取最新的一次提交),之后再拉取全部
git clone http://gugugutime/doc.git --depth 1
git fetch --unshallow
使用ssh协议下载
我最先使用http协议clone项目,但执行以上设置也无效,最后修改为ssh协议。
生成密钥对
语法:
ssh-keygen -t rsa -C "git邮箱"
-t 表示密钥的类型 ,-b表示密钥的长度(ssh-keygen -t rsa -b 4096 -C “你的邮件地址”),-C 用于识别这个密钥的注释 ,这个注释你可以输入任何内容,一般使用邮箱作为密钥的名字。
示例:
ssh-keygen -t rsa -C "admin@gugugutime.com"
一直回车即可。
会在C盘的用户目录下生成一对公钥、私钥。
也可以用户自定义密钥存储路径,密钥生成密码:
为git账户添加公钥
复制公钥的内容:
clip < ~/.ssh/id_rsa.pub
登录你的git账号,进入git仓库,一般是点击用户图标,然后在个人页面点击菜单栏的 SSH key 进入页面,点击添加 SSH key,将公钥粘贴即可。
注意 SSH key 代码的前后不要留有空格或者回车。
上面的 Title 所对应的输入框是该 SSH key 显示在 git仓库上的一个别名。
默认的可以使用你的邮件名称。
ssh协议克隆项目
git clone git://gugugutime.com/doc.git