当前位置: 首页 > Linux

Linux、git和github的故事

时间:2023-04-06 23:23:45 Linux

摘要:从LinusTorvalds对代码托管工具的改革,到github的诞生,再到开源世界的10大事件。一些故事串在一起。最近在分析业内知名技术社区的时候,详细看了看github。作为笔记,留下学习印记。一、Linux与git7月,阿里云参加了LinuxCon+ContainerCon+CloudOpenChina(简称LC3)大会并做了重要分享。详情请见。没想到,linux和git的故事就这样开始了。廖雪峰的博客中有这样一段描述:很多人都知道Linus在1991年创造了开源Linux,此后Linux系统不断发展,成为最大的服务器系统软件。虽然Linus创造了Linux,但Linux的成长有赖于全世界热心志愿者的参与。全世界这么多人为Linux写代码,Linux代码是怎么管理的?事实是,在2002年之前,全世界的志愿者通过diff把源代码文件发给Linus,然后Linus自己手动合并代码!你可能会想,为什么Linus不把Linux代码放在版本控制系统中呢?不是有像CVS和SVN这样的免费版本控制系统吗?因为Linus坚决反对CVS和SVN,所以这些集中式版本控制系统不仅速度慢,而且必须联网才能使用。有一些商业版本控制系统,虽然比CVS、SVN好用,但是是收费的,与Linux的开源精神不符。然而到了2002年,Linux系统已经发展了十年,庞大的代码库让Linus难以继续手动管理。社区的兄弟们也对这种方式表示了强烈的不满,于是Linus选择了商业版的BitKeeper,BitKeeper的所有者BitMover出于人道主义精神,授权Linux社区免费使用这个版本控制系统。安定团结的大局在2005年就被打破了,因为Linux社区云集了很多牛人,难免沾染上一些梁山好汉的江湖习气。开发Samba的Andrew试图破解BitKeeper协议(事实上,他并不是唯一这样做的人),但被BitMover发现(监控工作做得很好!),于是BitMover生气了,想拿走支持Linux社区的免费使用权。Linus可以向BitMover道歉,并承诺以后严惩兄弟们,好吧,这不可能。实际情况是这样的:Linus用了两周的时间用C写了一个分布式版本控制系统,也就是Git!一个月之内,Linux系统的源代码已经被Git管理了!牛是怎么定义的?每个人都可以体验它。Git迅速成为最流行的分布式版本控制系统。特别是2008年,GitHub网站上线。它免费为开源项目提供Git存储。无数开源项目开始迁移到GitHub,包括jQuery、PHP、Ruby等,历史就是这么偶然。如果当年BitMover没有威胁到Linux社区,我们现在可能没有免费且超级好用的Git。2、从git到github,这样的故事还有10个。有一些这样的文章,不过硅星今年4月发表的文章标题是《全球最大同性交友网站GitHub,今天10岁了》,作者是Spectrum,内容比较详细。SourceForge于1999年推出,由于免费,一度成为全球最受欢迎的开源软件代码托管网站。不过,谷歌担心自己会独一份,于是推出了自己的代码托管网站GoogleCode。2005年,Linux的缔造者LinusTorvalds对现有代码托管工具的效率不满意,于是自己制作了一个名为Git的版本控制工具。Git颇具革命性,允许大量开发人员同时为源代码贡献新代码,互不影响,最重要的是,它是开源的。三位来自旧金山的年轻人认为Git潜力巨大,于2008年正式推出基于Git的代码托管网站GitHub,没想到后来GitHub以强大的背景战胜了老牌SourceForge和GoogleCode,并且成为全球最受欢迎的代码托管网站。2008年4月10日,GitHub正式上线。这一年,GitHub刚满10岁!去年5月底,GitHub完成了第100millionthmillionthpullrequest(PR合并请求)命令。截至今天,GitHub拥有超过8000万个repo(代码仓库),2700万活跃用户,以及超过150万家公司和机构。由于程序员社区缺乏女性,拥有高纯度男性用户的GitHub也被冠以全球最大的同性交友网站……”10年前的今天,GitHub正式上线之初,我们只有一个非常简单的目标:连接所有开发人员并使他们更容易使用Git进行项目协作,”联合创始人ChrisWanstrath在博客文章中写道。GitHub存在的意义从未改变。”作为10周年的纪念,GitHub团队并没有选择回顾公司的历史,而是梳理了过去10年他们眼中的几个重大里程碑,这很GitHub——这个荣誉,其实不仅属于平台本身,也属于那些通过Git,GitHub,各种语言,用JS,Python,各种语言贡献代码的人,让这个世界变得更美好。以下是这些事件在计算机行业和GitHub的发展中创造了历史。20080403:Rails转移到GitHubRubyonRails(Rails),是一个用Ruby语言编写的开源Web应用程序框架。它提高了开发复杂网页的效率,是其中之一计算机界最流行的开源项目。2008年4月,Rails以身作则,将版本控制从SVN改为Git,成为第一个进入GitHub的大型开源项目。当时GitHub还是处于内测阶段,尚未正式上线。GitHub本身是用Rails编写的。带来了很大的影响。20090103:比特币的诞生比特币在2009年诞生后,于2010年正式开源并托管在GitHub上。比特币是世界上第一个去中心化的数字货币,它的诞生和开源引发了一场影响金融和科技,甚至更多行业的革命。到目前为止,比特币项目已经接受了500多个用户贡献的代码。比特币的底层技术“区块链”被广泛应用被视为下一个革命性的计算机技术,比特币项目已经被分叉(代码库复制)超过18000次,大量区块链和数字货币项目在GitHub上开源,其中不乏来自比特币源代码。20090521:Node.jsRelease你可能听说过Web开发分为前端和后端。前端管理网页渲染,后端管理数据输出。但是,两者并不是孤立的,前端开发还涉及到保证后端数据的正确性。因此,大量使用JavaScript(JS)语言的前端人员需要学习PHP、Ruby等后端语言,非常麻烦。Node.js的主要意义是让前端可以使用JS完成前端需要的大量开发任务,开发适应多种操作系统的复杂服务器端应用。简单来说,就是将前端和后端工程师从陌生的领域中解放出来。2009年5月底,Node.js正式发布在GitHub上发布,受到了众多前后端人士的追捧,被认为是未来的趋势。2014年,Node.js的主要贡献者对项目的官方管理公司不满意,于是他们建立了自己的门户网站,并分叉了原始代码,制作了一个社区驱动而非企业运营的替代方案,称为io.js。这个项目一度比Node.js火爆,但后来Node.js在开源治理上有所改进,两个项目再次合并。在整个过程中,GitHub的开放机制保证了社区拥有自主权,不必服从开源项目的所有者。必要的时候,fork是一种力量,是一种态度。20101126:RailsGirls第一次线下会议2010年,一群使用Rails进行开发的女程序员在芬兰赫尔辛基举行了第一次线下会议。三年后,他们开设了RailsGirlsSummerofCode,这是一个面向女性和LGBTQ人群的夏令营。这个开源培训计划帮助开源社区改善性别多样性,并有助于解决科技行业对女性的结构性歧视。20110101:TravisCI持续集成第一个PR持续集成(CI)从GitHub等代码库按频率提取最新代码,自动构建项目并测试。持续集成并不能消除错误,它使它们很容易找到和纠正。比如持续集成工具显示如下buildpassing,大致意思是当前版本已经通过测试,没有出现bug。而TravisCI是最流行的开源持续集成工具。2011年元旦,完成了第一次公关。TravisCI与GitHub的整合,使得整个将代码投入生产环境的过程更加高效。20120101:JS成为GitHub上最大的语言。起初,它是一种网络脚本语言。JS、HTML、CSS被列为三大Web开发语言。被JS骗过的程序员经常会嘲笑它是一门不完整的语言。有个很老的笑话:写C的看不起写C++的,写C++的看不起写Java的,写Java的看不起写JS的。写JS的看不起美工,周末大家都在加班,美工带着闺蜜旅游。然而,对编程语言的鄙视链,总是与流行背道而驰。从2012年开始,JS超越Ruby、Java、Python成为GitHub上最受欢迎的语言,时至今日依然占据着宝座。2013年:GitHub用户突破100万。开源社区的发展让GitHub实现了惊人的增长速度,在用户数量和repo数量上实现了两个里程碑:2013年用户数量突破100万;同年12月,GitHub的repo总数突破1000万,其中超过一半是当年创建的,仅11月就增加了100万。别光看数字,今年新增的repo质量也很不错:白宫的ProjectOpenData、Docker等。亚马逊AWS、Facebook、谷歌、微软、推特、Netflix等知名企业也纷纷上传了自己的项目。20140609:Docker1.0发布Docker,一个被视为革命性技术的开源容器引擎。2013年,在GitHub上创建了一个repo,一年内下载量超过275万次。2014年,Docker1.0终于正式发布。Docker和Kubernetes(K8S)等开源项目开始了容器化运动。开发生产运维难度降低,小公司不再需要将精力花在基础设施上,可以更专注于核心业务发展。20140721:DjangoGirls首个线下约会交友平台可不是闹着玩的……GitHub的程序员社交功能让很多开发者通过它实现了线下聚会。它使程序员更容易认识彼此,这对女孩来说尤其重要。2014年在德国柏林,Django女性开发者首次举办了线下聚会,她们的组织至今仍在努力提高性别多样性。20140723:微软开源.NET虽然随着移动互联网的飞速发展,已经跟不上时代的.NET已经没落了。微软对开源社区的示好,至今仍被视为开源界的历史性事件。Microsoft创建了一个开源计划,然后在GitHub上开源了所有开源代码,包括.NET。数以千计的工程师也让微软成为GitHub上最活跃的公司。.NET的开源带来了一波节奏,随后越来越多的大公司迁移到GitHub,放弃了自己的代码托管站点或过时的代码库。2015年:虚幻引擎4免费,大量游戏相关开源2015年3月2日,虚幻引擎4完全免费。EpicGames已发布100%C++源代码。虽然独立开发者开发AAA级大作还是需要资金的,但至少他们手中的虚幻引擎4与大厂手中的没有区别。EpicGames对社区的支持得到了回报。虚幻引擎的最新版本4.19包含来自社区的128个贡献。除了UnrealEngine,2015年GitHub上还有很多游戏引擎、库、游戏代码,比如《毁灭战士》、《波斯王子》。最有意思的应该是2048,它的开源带来了上百款类似的消除类游戏……总的来说是个好东西。20150922:GitHubClassroom发布除了工业界,包括大学和高中在内的学术界也可以使用GitHub进行教育。GitHubClassroom改进了编码类代码管理、分发和作业收集。看起来像是在做慈善,其实是一个聪明的举动:GitHub的流行必须从baby开始,尽管它已经碾压了所有其他竞争对手。20151203:苹果开源Swift苹果新的编程语言Swift具有函数式编程和面向对象编程的诸多特点,同时也兼容苹果平台以往的开发语言C和Objective-C。它也是一种强类型语言而不是脚本语言,它还注重安全性……Swift对Apple开发人员来说是一件很棒的事情,还有什么比Swift开源更令人兴奋的呢?如果说微软带来了一波节奏,那么苹果Swift编程语言的开源则着实让其他科技公司折服。大哥是开源的,我们有什么理由不遵循呢?20160709:Apollo11代码开源60年代的程序员也有幽默感。不信你去GitHub上看看阿波罗11号的代码,像这个:一路上到月球用的临时代码。您可能会感兴趣,50年前的程序员和代码是什么样的?隆重向大家介绍Apollo11计算机系统工程师,麻省理工学院MargaretHamilton:Apollo11代码开源地址:https://github.com/chrislgarry...2017:Python因数据科学和深度而进入GitHubPython学习爆炸再次成为人们关注的焦点,2015年它成为GitHub上第三大最受欢迎的语言,2017年跃升至第二位。当各大公司和人工智能专家开始提倡“民主化AI”(democratizeAI)时,Python终于来到了GitHub。这使得Python在GitHub上的流行度更加不可阻挡,使用Python语言的新repos数量环比增长了70%。20170215:TensorFlow1.0发布革命性的深度学习库,非专业人士也听说过TF——主要是因为AlphaGo打败了李世石和柯洁。2016年,TensorFlow成为GitHub上分叉最多的项目。除了TF,Caffe2、DeepSpeech等一大批深度学习工具也已经开源。利用这些工具,研究人员可以为不同领域创建深度学习模型,包括但不限于电子游戏、桌游、音乐、绘画、医疗、金融等,带来新的技术范式和商业模式,显着改善人们的生活.20180410:十周年,再出发2017年,用户提交了超过2.9万亿条代码,GitHub也合并的PR终于突破了1亿。2018年GitHub用户总数达到2700万,项目总数超过8000万。人工智能、区块链、量子计算……许多新的计算机技术、新的计算范式已经或即将到来。代码和数据在某种程度上已经取代了石油,成为人类的新鲜血液。在这样的背景下,GitHub太重要了,但它也面临着与10年前的SourceForge等前辈一样的命运:全球开源代码来了,过度中心化会不会增加风险?在享受GitHub带来的便利的同时,越来越多的人会更加关注它——代码上传后,最好不要在本地rm。最后给出一些GitHub整理的资料。首先是PR统计的热门语言,JS,Python,Java,Ruby,PHP:热门关键词,机器学习,游戏,iOS,API,博客,网站,深度学习,Ardiono:最多fork项目,TF,引导程序,gitignore;贡献者最多的项目,VSCode、ReactNative、NPM:评论最多的项目,DefinitelyTyped、K8S、Homebrew;讨论最多的repo,K8S、Origin、CMSSW注册用户最多的国家:中国排名第二。3.收购了65亿美元。6月5日,官方宣布微软以75亿美元收购GitHub。4、思考:从技术社区到内容开放平台,需要更多。本文作者:云转阅读原文,为云栖社区原创内容,未经许可不得转载。