Github是一个基于Git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开。Github 由Chris Wanstrath, PJ Hyett 与Tom Preston-Werner三位开发者在2008年4月创办。迄今拥有59名全职员工,主要提供基于git的版本托管服务。今天,GitHub已是:一个拥有143万开发者的社区。其中不乏Linux发明者Torvalds这样的顶级黑客,以及Rails创始人DHH这样的年轻极客。
这个星球上最流行的开源托管服务。目前已托管431万git项目,不仅越来越多知名开源项目迁入GitHub,比如Ruby on Rails、jQuery、Ruby、Erlang/OTP;近三年流行的开源库往往在GitHub首发,例如:BootStrap、Node.js、CoffeScript等。alexa全球排名414的网站。
下面是GitHub的图标和主页面:
一.GitHub发展历程:从代码托管到开发者生态的核心
2005年,在Git发布的时候,开源正经历着一场复兴。人们对Linux的兴趣非常强烈。第一个Web 2.0应用程序已经出现。许多公司将其技术堆栈迁移到开源服务器上。尽管Git通过引入分叉的概念使得在开源项目上的协作基本上不会耗费力气,但Git做不到的是:帮助程序员找到那些开源项目。很多程序员都在研究大量令人兴奋的开源项目,但很难找到它们。GitHub将会改变这一切。
2007年10月1日,普雷斯顿-沃纳和万斯特拉斯开始正式开发GitHub的第一个版本。他们永远改变了编程。
2008年,当汤姆·普雷斯顿-沃纳(Tom Preston-Werner)、克里斯·万斯特拉斯(Chris Wanstrath)和PJ·海伊特(PJ Hyett)合作完成一个项目的时候,他们只是把它当做一个周末项目,仅此而已。 但没过多久,他们就意识到,他们的想法可能比自己所设想的要大得多,将远远超过一个周末项目的范畴: 它将改变人们编写和分享代码的方式。这个想法就是 GitHub。2008年1月,经过长达三个月的周末编程冲刺、在餐巾上画线框图和通宵工作,万斯特拉提和普雷斯顿沃纳准备向世界揭开 GitHub 的面纱。正如Spotify在早期开发阶段所做的那样,GitHub最初是作为一个私人测试版发布的。万斯特拉斯和普雷斯顿-沃纳通过电子邮件向他们在海湾地区之外的创业公司的朋友们发送了邮件,邀请他们尝试他们一直在开发的工具。得到的反应非常积极。接下来的一个月,GitHub诞生,此前公司的名称是Logical Awesome。
2010年6月29日,GitHub推出了Organizations功能,这是一个允许企业用户集中管理组织拥有的存储库的工具。虽然引入企业组织在一定程度上是为了响应那些要求尝试GitHub的公司,并使其尽可能无障碍地采用GitHub,但它也揭示了公司未来的雄心。
2010年,创始人清楚地看到,收入增长最重要的载体,将是推动企业和组织层面采用GitHub。GitHub将在一年多后推出GitHub Enterprise,但Organizations清楚地表明了公司的意图。到2012年,GitHub已经变得非常受欢迎。
2012年,GitHub的增长令人瞩目。该公司创造了一个解决紧迫问题的坚实产品,并围绕一项新兴技术建立了一个完整的公司。
2015年,GitHub成为许多程序员进行版本控制的首选项。不仅如此:它还是一个社交中心,程序员可以相互学习。它是程序员聚集的网站、社交网络和专业网络中心。
2018年6月4日上午,微软以75亿美元收购GitHub。
在短短的10年里,GitHub 改变了人们的编程方式。 不仅让编程变得更简单,还改变了软件开发者对编程的看法。
2020年3月17日,GitHub宣布收购npm,GitHub保证npm将永远免费使用。
2021年11月4日消息,微软宣布GitHub CEO奈特·弗里德曼将于11月15日卸任,其职位由GitHub产品主管托马斯·多梅克接替。
2023年1月24日消息,微软GitHub发布博客称,将于2024年1月8日停止支持版本控制系统 Subversion,即SVN。
2024年1月22日,地平线公司宣布将纯视觉自动驾驶算法——Sparse4D系列算法开源,目前该算法已在GitHub平台上线。
二.主要用法和功能
管理软件开发:作为开源代码库以及版本控制系统,Github拥有超过900万开发者用户。随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法。
分布式控制:如前所述,作为一个分布式的版本控制系统,在Git中并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。在GitHub进行分支就像在Myspace(或Facebook…)进行交友一样,在社会关系图的节点中不断的连线。
托管各种git库:GitHub可以托管各种git库,并提供一个web界面,但它与外国的SourceForge、Google Code或中国的coding的服务不同。GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。
开源项目免费托管:GitHub项目本身自然而然的也在GitHub上进行托管,只不过在一个私有的,公共视图不可见的库中。开源项目可以免费托管,但私有库则并不如此。Chris Wanstrath,GitHub的开发者之一,肯定了通过付费的私有库来在财务上支持免费库的托管这一计划。
方便团队开发:通过与客户的接洽,开发FamSpam,甚至是开发GitHub本身,GitHub的私有库已经被证明了物有所值。任何希望节省时间并希望和团队其它成员一样远离页面频繁转换之苦的人士都会从GitHub中获得他们真正想要的价值。
帮助初学者寻找开源代码:在GitHub,用户可以十分轻易地找到海量的开源代码。
不是程序员能用GitHub做什么,写书,写文档,搭建博客、个人网站或者公司官网,协作翻译,项目管理,科研项目及数据,设计资源库等。
三.特点
开源平台:GitHub是一个开源代码托管平台,许多开发者和组织将他们的项目以开源形式托管在GitHub上,使得用户可以自由查看、学习和贡献这些项目。
版本控制:GitHub基于Git版本控制系统,提供了强大的版本管理功能,可以跟踪代码的变化,管理不同版本的代码,方便团队协作和代码审查。
协作与社交:GitHub为开发者提供了丰富的协作工具,如问题跟踪、请求合并、代码审阅等,同时也是一个社交平台,用户可以关注其他开发者、项目,并进行交流和分享。
托管服务:GitHub提供了云端代码托管服务,用户可以将项目代码存储在GitHub的服务器上,实现备份、共享和访问,同时也支持私有仓库以及团队协作。
持续集成与部署:GitHub提供了Actions功能,可以进行持续集成、测试和自动部署,帮助开发者构建、测试和发布他们的代码。
开发者生态系统:GitHub拥有庞大的开发者社区和开源项目,为开发者提供了学习、交流和贡献的平台,同时也为企业提供了丰富的开源资源和人才库。
四.使用方法
创建GitHub账户
创建一个属于自己的库
GitHub 的拉取请求工作流,创建分支,进行和提交更改,打开一个拉取请求,合并拉取请求。
将项目上传到GitHub:为项目创建新存储库
将文件上传到项目的存储库,编辑项目存储库的 README 文件
Git 和 GitHub 学习资源
下载并安装最新的Git,使用来自Git的GitHub进行身份验证,需要使用 HTTPS 或 SSH 向 GitHub 进行身份验证。现在可以选择创建仓库以放置项目。 在存储库中保存代码可以备份代码并在世界各地共享。
从GitHub下载文件:导航到 octocat/Spoon-Knife。在文件列表上方,单击 “代码”
五.优缺点
优点:
几乎拥有全世界最多的开源代码,有众多非常知名的开源项目,也是本文中几个代码库中最出名的一个。支持多人共同完成一个项目,bugs 可以公开。代码开源这一块做的非常好。据说现在可以免费建私有仓库了,并且仓库数量无限制,但是唯一限制的是免费的私有仓库只能同时允许最多三个协作者,这对独立开发者和小开发团队来讲简直是福音。对 markdown 很友好,
缺点:
只提供英文,对于英文不好的人来说可能使用有障碍。只支持 git 格式代码托管,不对 csv,svn,hg 等进行支持。私有库有一点限制,就是对协作者的数量进行了限制。国内对 github 的访问速度可能比较慢。保护分支是收费的