设为首页 收藏本站
查看: 1018|回复: 0

[经验分享] 那年,我学习《Linux内核修炼之道》——学会使用Git

[复制链接]

尚未签到

发表于 2016-4-1 11:56:20 | 显示全部楼层 |阅读模式
  

  
  这些文章是阅读《linux内核修炼之道》的笔记和一些自己补充的知识和感悟,写的不清楚的地方请查看《linux内核修炼之道》等资料。同时文章若有不妥的地方请大家指出,谢谢。
转载请注明出处:http://blog.csdn.net/muge0913/article/details/7252135
  

  

  作为一名人民的好干部,如果希望被惦记,可以学我们的郑书记,将自己和蔼可亲的光辉形象搬上台历;作为一名有梦想有追求而又不知道如何出名的人,你可以参考对岸的“超想被包养”社团。而作为一个内核爱好者,要想成为一名内核开发者,为内核贡献自己的代码,我们必须要能够与其他众多的内核开发者协同工作,这就意味着应该能够使用内核的版本控制工具Git管理内核代码。
  

  

  1. 什么是Git
  Git是Linus专门为内核而开发的一个开放源码的版本控制软件,如下图所示,Git的主页http://git-scm.com/很好的回答了Git是什么的问题。
   DSC0000.gif
  

  Git是一款免费的、开源的、分布式的版本控制系统,旨在快速高效地处理无论规模大小的任何软件工程。每一个Git clone(克隆)都是一个含有全部项目历史记录的文件仓库(repository),具有完整的版本修订追踪能力,它不依赖于网络连接或中心服务器,创建分支(branching)和合并分支(merging)非常的快速和简单。
  目前,已经有越来越多的著名项目采用Git来管理项目的开发,比如Perl、Gnome、Wine等等。(注意,在Ubuntu/debian上,安装的是git-core,而不是git)
  

  

  2.Git的由来
  Linus于2002年2月开始使用BitKeeper作为内核的版本控制工具。但是BitMover公司在商业版的BitKeeper之外,提供的BitKeeper只是仅可免费使用但不允许加以修改开放的精简版,因此,包括GNU之父Richard Stallman之内的很多人,对Linus使用BitKeeper感到不满。
  然而,当时市场上并没有其他具备BitKeeper类似功能的自由软件可用,于是有些人就尝试对其进行逆向工程,这惹恼了BitMover,该公司于是决定停止提供BitKeeper的免费版本。为解决无工具可用的窘境,Linus便自行开发Git,希望在适当的工具出现前,暂时得充当解决方案。当时Linus曾称Git为愚蠢的内容管理器(the stupid content tracker)。当Git有了迅速成长之后,Linus就建议能够以其作为长期的解决方案,并于之后的2.6.12-rc3内核第一次采用Git进行发布。
  

  

  

  3. 一段录像
  在Git历史上有段很著名的录像,是Linus在Google的一个演讲,我们可以在youtube上看到它。在这段录像中,Linus说明了设计Git的原因,基本的设计哲学,以及与其他版本控制工具的比较。
  从技术的观点上,Linus非常尖锐的批判了CVS与SVN。虽然Linus从来没有使用过CVS去管理内核代码,但是他在商业公司曾有过一段不短时间的使用经历,而且对其强烈的厌恶。同时他批判SVN是毫无意义的,因为SVN尝试从各方面去改善CVS的一些缺点,却无法根本的解决一些基本的使用限制。具体来说就是,SVN改善了创建分支的所耗费的成本,相对CVS利用了比较少的系统资源,但是却无法解决合并分支的需求。但是许多项目的开发过程中,都时常需要为不同的新功能创建分支、合并分支,如此依赖,SVN就成为一个没有未来的项目。
  Git作为一个分布式的版本控制工具,你可以随意的创建新分支,进行修改、测试、提交,这些在本地的提交完全不会影响到其他人,可以等到工作完成后再提交给公共的仓库。这样就可以支持离线工作,本地提交可以稍后提交到服务器上。
  Linus提到,在内核开发社区中有一种信任关系(web of trust),像内核这样庞大的项目,每个版本参与的开发者都非常多,但是Linus不可能认识这么多的人,自然地,他只能信任最为熟悉的极少数人,并相信那些人的智商与能力是足以信赖的,于是他只需要信赖这些人的成果,而同时这些人又在自己的信任圈力找到他可以信赖的人,于是利用这样的信赖机制扩展成了网状的内核开发社区。
  实际上,社区中也会演化出几个角色,比如司令(dictator)、副官(lieutenants)、开发者,少数的副官只需要专注在他们熟悉的领域,整合开发者的成果,并提交给司令做最后的整合决策,这样一来,各种不同的领域都可以交给最为熟悉的开发者去管理,而项目开发本身不会被限制阻塞在某个角色身上,相对而言是一种比较高效的开发社区结构。
  

  

  4. 一些资源
  本书并不会也不需要对Git的具体使用过程进行介绍,下面仅推荐几个好的网站或资料以供学习参考。
  http://www.ibm.com/developerworks/cn/linux/l-git/
  这篇文章详细描述了如何使用Git来管理内核代码。
  http://www.youtube.com/watch?v=4XpnKHJAok8
  这就是上面提到的那段著名的录像,相信认真的消化之后会有不小的收获。
  http://book.opensourceproject.org.cn/versioncontrol/git/gittutorcn.htm
  Git的中文教程。
  http://zh-cn.whygitisbetterthanx.com/#github
  这是Kanru翻译的《为什么Git比X更好》,简要的说明了Git与其他版本控制工具的比较,可以让你了解各种工具之间的差异细节。
  http://github.com/
  很多人说正是GitHub让他们选择了Git,相比其他的项目托管网站,它更象一个社交网络,可以追踪别人的状态,不过追踪的不是朋友发出的信息,而是朋友写出的代码。人们可以在GitHub上找到与他们在做的事相关的其他开发人员或项目,然后轻松地fork和贡献,这样形成了一个以Git和各种项目为中心的活跃社区。
  

  

  

  



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-198397-1-1.html 上篇帖子: 《Linux内核修炼之道》精华分享与讨论(20)——学会使用Git 下篇帖子: Git常用命令整理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表