问题
我想看看 Nest 的源码,然后去克隆它的仓库下来看看,在大概下载了 10 MB 内容的时候卡住了:
cmd- $ git clone https://github.com/nestjs/nest.git
- Cloning into 'nest'...
- remote: Enumerating objects: 177754, done.
- remote: Counting objects: 100% (1055/1055), done.
- remote: Compressing objects: 100% (481/481), done.
- Receiving objects: 10% (18037/177754), 10.71 MiB | 123.00 KiB/s
等了许久后却报错了:
cmd- error: RPC failed; curl 16 Error in the HTTP2 framing layerKiB/s
- error: 5133 bytes of body are still expected
- fetch-pack: unexpected disconnect while reading sideband packet
- fatal: early EOF
- fatal: fetch-pack: invalid index-pack output
经多次尝试仍无法下载。
解决方法(?)
这大概是仓库太大了下不下来,查了几个方法,例如修改缓冲区http.postBuffer
大小:
cmd- git config --global http.postBuffer 157286400
这对我来说没有作用。
有的人认为或许是代理服务器的原因,例如 Nginx 的proxy_max_temp_file_size
限制,但是我没有使用代理,总之完全不知道什么原因。
可行的解决方法就是,git clone
的时候设置--depth=1
来仅拉当前分支最新代码,而忽略历史记录,来减少拉取的体积。
cmd- git clone 仓库url --depth=1
最终是拉下来了:
cmd- $ git clone https://github.com/nestjs/nest.git --depth=1
- Cloning into 'nest'...
- remote: Enumerating objects: 2199, done.
- remote: Counting objects: 100% (2199/2199), done.
- remote: Compressing objects: 100% (1809/1809), done.
- remote: Total 2199 (delta 490), reused 1137 (delta 268), pack-reused 0
- Receiving objects: 100% (2199/2199), 1.48 MiB | 80.00 KiB/s, done.
- Resolving deltas: 100% (490/490), done.
- Updating files: 100% (2040/2040), done.
另外,想要指定分支的话,还可以使用-b 分支名 --single-branch
:
cmd- git clone -b master --single-branch 仓库url --depth=1
--depth=1
克隆代码后,本地只能看见当前分支的最新 commit,这时候,可以用
cmd- git pull --unshallow
来拉取所有的 commit。(当然,我遇到情况是拉取是失败的,因为需要下载所有 commit 又回到开头的问题了)
0 条评论未登录用户
Ctrl or + Enter 评论