使用git从github获取linux kernel source tree

大多数博客和书籍提到获取linux kernel 往往就是提供一条命令:

git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git

或是

git clone https://github.com/torvalds/linux.git

甚至是直接从github上下载对应releases的zip包。
在实际操作过程中我遇到了如下问题:

问题一、

git clone 到一半出现error:

error: RPC failed; result=18, HTTP code = 200B | 1 KiB/s
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: recursion detected in die handler

查找原因:curl 的默认postBuffer值过小
解决方案:

git config http.postBuffer 524288000

问题二、

git clone 到一半出现另一个error:

error: RPC failed objects: 4851777, done.
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

查找原因:国内到github服务器或kernel.org服务器网速过慢(也许是我这网速太慢),导致连接中断。
解决方案:
方案1、到国内代码托管平台搜索对应的linux kernel source,git clone 后将origin地址更改成github即可。国内的osc可以搜索到现成的linux kernel代码。
方案2、需求git版本1.9以上

git clone https://github.com/torvalds/linux.git --depth=1
git fetch --unshallow

这个方法相当于先下载source tree 中的一个版本然后补全,因为是阶段式的所以中断的概率较小,我下载其中一个版本一次就成了,补全试了两次成了,还是有运气成分。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,337评论 19 139
  • 1:软件源的替换 ruby 的软件源( https://rubygems.org )使用的是亚马逊的云服务,所以...
    iOS小吴阅读 3,408评论 0 3
  • 声明:这篇文章来源于廖雪峰老师的官方网站,我仅仅是作为学习之用 Git简介 Git是什么? Git是目前世界上最先...
    横渡阅读 9,374评论 3 27
  • 相思茶,相知久,笔如锋墨入禅。 落枯荣,启新程,待君抚荒唐。 城上月,白如雪,焱壁龙雀高鸣。 酒阁兴,谁相伴,江湖...
    手握瓷杯阅读 2,707评论 2 2
  • 环境给了树年轮,岁月留下痕迹。唯有生长可以改变。秋天意味着收获,唯有生长可以给予。大地提供了养分,唯有生长可以利用...
    oulan阅读 988评论 0 0