简介
- GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。GitHub于2008年4月10日正式上线,除了Git代码仓库托管及基本的Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,其托管版本数量非常之多,而且其中不乏知名开源项目,例如RubyonRails、jQuery、python等。
- 作为开源代码库以及版本控制系统,Github拥有超过千万的开发者用户。随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法。如前所述,作为一个分布式的版本控制系统,在Git中并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。
- GitHub可以托管各种Git库,并提供一个web界面,但与其它像SourceForge或GoogleCode这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的Fork的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的pullrequest机制向项目负责人申请代码合并。
- GitHub项目本身自然而然的也在GitHub上进行托管,只不过在一个私有的,公共视图不可见的库中。开源项目可以免费托管,但私有库则并非如此。在GitHub,用户可以通过Explore轻而易举地找到海量的开源代码。因此,称之为程序员的圣地也不过吧?
GitHub库的数量增长趋势
fork的意思
GitHub中Fork是服务端的代码仓库克隆(即新克隆出来的代码仓库在远程服务端),包含了原来的仓库(即upstreamrepository,上游仓库)所有内容,如分支、Tag、提交。代码托管服务(如Github、BitBucket)提供了方便的完成Fork操作的功能(在仓库页面点一下Fork按钮)。这样有了一个你自己的可以自由提交的远程仓库,然后可以通过的PullRequest把你的提交贡献回原仓库。而对于原仓库Owner来说,鼓励别人Fork他的仓库,通过PullRequest能给他的仓库做贡献,也是提升了原仓库的知名度。
快速起步
克隆和pull拉取的区别
- clone是本地没有repository时,将远程repository整个下载过来。
- pull是本地有repository时,将远程repository里新的commit数据(如有的话)下载过来,并且与本地代码merge。