公司有个项目的git仓库,因为一些二进制文件也放在里面,版本迭代后,整个仓库特别大,有好几G。
直接git clone
是不行的,会报这样的错误:
error: RPC failed; HTTP 502 curl 22 The requested URL returned error: 502 Proxy Error
fatal: The remote end hung up unexpectedly
后来查了一下,使用--depth选项,只拉出一层的东西:
git clone --depth=1
这样就只有master分支最新版本的代码状态了,只有几十兆。本以为可以直接使用--unshallow
恢复到完整的仓库,事实证明还是不行,这样照样还得下载好几G的数据。
那就试试只拉取10个commit的吧:
git fetch --depth=10
果然,这样是可以的。
好吧,那就一步一步来,最后是这样做的:
for((i=10;i<=200;i=i+10));do git fetch --depth=$i;done
最后再:
git fetch --unshallow
一下就行了,可以愉快地git pull
了。