有时候某些git的代码库在fetch远端的时候会非常慢,速度只有几十k或者几k。这个速度拉取一整个代码库可能要花费一晚上或者一天时间。甚至在每天更新已有代码库时候也会花上十分钟。可以尝试一下这些方法来提升拉取远端代码的速度:
1. Git 版本过低的话可能会导致这个问题,模糊记得在2.6.*某一个版本之前是有bug导致fetch速度过慢。尝试升级到比较新的Git版本可能会解决。
2. 尝试使用不同的repo server/mirror。比如在bitbucket上,一个代码库往往有一个主的代码服务器和多个镜像。
可以尝试使用不同的镜像来提升速度。如果是git clone的话直接选择一个不同的镜像即可,如果是 fetch/pull的话也可以在git config里面更改url的地址
3. 更改http的post buffer大小。增加这个缓存的话,对于有大量的小文件的代码库,可以有效提升速度,在这里我改成了512MiB:
git config --global http.postBuffer 536870912
4. 可以尝试使用一个不同版本的git 协议:
git config --global protocol.version 2
5. 在 IPv6上使用SHH连接的话可能会很慢甚至导致超时。Git会自己在超时之后切换到IPv4。但这样的话时间一直浪费在IPv6超时上,不如直接关掉,只是用IPv4:
在Linux的机器上更改/etc/sshd_config:
Host bitbucket.org
AddressFamily inet
然后重启一下ssh服务:
sudo service ssh restart
6. 如果你的代码库中有多个submodules的话,可以使用
git clone --jobs 3
来同时(并行)拉取多个submodules文章来源:https://www.toymoban.com/news/detail-695380.html
其中的 -j <n>
, --jobs <n>
指定了可以同时并行拉取submodules的数量,git config中的submodule.fetchJobs也是定义了这个数量文章来源地址https://www.toymoban.com/news/detail-695380.html
到了这里,关于SSH连接下Git fetch/pull/push 速度太慢的一些解决办法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!