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的地址

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

其中的 -j <n>--jobs <n> 指定了可以同时并行拉取submodules的数量,git config中的submodule.fetchJobs也是定义了这个数量

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值