0


SSH连接下Git fetch/pull/push 速度太慢的一些解决办法

有时候某些git的代码库在fetch远端的时候会非常慢,速度只有几十k或者几k。这个速度拉取一整个代码库可能要花费一晚上或者一天时间。甚至在每天更新已有代码库时候也会花上十分钟。可以尝试一下这些方法来提升拉取远端代码的速度:

  1. Git 版本过低的话可能会导致这个问题,模糊记得在2.6.*某一个版本之前是有bug导致fetch速度过慢。尝试升级到比较新的Git版本可能会解决。

  2. 尝试使用不同的repo server/mirror。比如在bitbucket上,一个代码库往往有一个主的代码服务器和多个镜像。

可以尝试使用不同的镜像来提升速度。如果是git clone的话直接选择一个不同的镜像即可,如果是 fetch/pull的话也可以在git config里面更改url的地址

  1. 更改http的post buffer大小。增加这个缓存的话,对于有大量的小文件的代码库,可以有效提升速度,在这里我改成了512MiB:
git config --global http.postBuffer 536870912
  1. 可以尝试使用一个不同版本的git 协议:
git config --global protocol.version 2
  1. 在 IPv6上使用SHH连接的话可能会很慢甚至导致超时。Git会自己在超时之后切换到IPv4。但这样的话时间一直浪费在IPv6超时上,不如直接关掉,只是用IPv4:

在Linux的机器上更改/etc/sshd_config:

Host bitbucket.org
    AddressFamily inet

然后重启一下ssh服务:

sudo service ssh restart
  1. 如果你的代码库中有多个submodules的话,可以使用
git clone --jobs 3

来同时(并行)拉取多个submodules

其中的

-j <n>

,

--jobs <n> 

指定了可以同时并行拉取submodules的数量,git config中的submodule.fetchJobs也是定义了这个数量

标签: ssh git 运维

本文转载自: https://blog.csdn.net/UncommenPlaces/article/details/131549924
版权归原作者 UncommenPlaces 所有, 如有侵权,请联系我们删除。

“SSH连接下Git fetch/pull/push 速度太慢的一些解决办法”的评论:

还没有评论