有时候某些git的代码库在fetch远端的时候会非常慢,速度只有几十k或者几k。这个速度拉取一整个代码库可能要花费一晚上或者一天时间。甚至在每天更新已有代码库时候也会花上十分钟。可以尝试一下这些方法来提升拉取远端代码的速度:
Git 版本过低的话可能会导致这个问题,模糊记得在2.6.*某一个版本之前是有bug导致fetch速度过慢。尝试升级到比较新的Git版本可能会解决。
尝试使用不同的repo server/mirror。比如在bitbucket上,一个代码库往往有一个主的代码服务器和多个镜像。
可以尝试使用不同的镜像来提升速度。如果是git clone的话直接选择一个不同的镜像即可,如果是 fetch/pull的话也可以在git config里面更改url的地址
- 更改http的post buffer大小。增加这个缓存的话,对于有大量的小文件的代码库,可以有效提升速度,在这里我改成了512MiB:
git config --global http.postBuffer 536870912
- 可以尝试使用一个不同版本的git 协议:
git config --global protocol.version 2
- 在 IPv6上使用SHH连接的话可能会很慢甚至导致超时。Git会自己在超时之后切换到IPv4。但这样的话时间一直浪费在IPv6超时上,不如直接关掉,只是用IPv4:
在Linux的机器上更改/etc/sshd_config:
Host bitbucket.org
AddressFamily inet
然后重启一下ssh服务:
sudo service ssh restart
- 如果你的代码库中有多个submodules的话,可以使用
git clone --jobs 3
来同时(并行)拉取多个submodules
其中的
-j <n>
,
--jobs <n>
指定了可以同时并行拉取submodules的数量,git config中的submodule.fetchJobs也是定义了这个数量
版权归原作者 UncommenPlaces 所有, 如有侵权,请联系我们删除。