GitHub基于Rails的Git库托管如前所述,作为一个分布式的版本控制系统,在Git中并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。
GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单︰首先点击项目站点的“fork”的按 钮,然後将代码检出并将修改加入到刚才分出的代码库中,最後通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace︰
在GitHub进行分支就像在Myspace(或Facebook [...])进行交友一样,在社会关系图的节点中不断的连线。
GitHub项目本身自然而然的也在GitHub上就行托管,只不过在一个私有的,公共视图不可见的库中。开源项目可以免费托管,但私有库则并不如此。Chris Wanstrath,GitHub的开发者之一,肯定了通过付费的私有库来在财务上支持免费库的托管这一计划。
是的,我们正是这麼计划的。通过与客户的接洽,开发FamSpam,甚至是开发GitHub本身,GitHub的私有库已经被证明了物有所值。任何希望节省时间并希望和团队其它成员一样远离页面频繁转换之苦的人士都会从GitHub中获得他们真正想要的价值。
内幕信息Chris Wanstrath还向记者分享了关于GitHub的一些内幕信息︰
GitHub主要用Rails实现。我们目前在进行的post-commit集成小应用完全使用Merb编写。我们使用了Python的Pygments来做格式高亮显示,另外,还用了Ara T. Howard's Bj加上一些Ruby脚本来做我们的排队系统。当然,我们用了Ruby Grit库来和Git进行交互。
GitHub已经有了一组引人注目的特性,除了命令式的库浏览器和一个项目Wik,GitHub甚至还包括了一个GitHub gem,以使通过shell方式使用GitHub更为方便。更多的未来特性已经在计划中︰
许多人都希望能有一个条目系统,因此一个简单的条目系统已经在开发中。此外,正如我前面所言,我们尚在进行RubyGems服务器和一些之前留出的post-commit钩子方面的工作。如果你不能或就是不想托管一个你自己的守护进程,你可以使用我们所提供的。
我们还在开发一些特性来帮助公司在使用Github时可以停留在sync之上。
最後,我们也在进行API发布方面的工作。我们很快就会发布一些只读性的API,随後是一些很强大的“写”集成。你可以使用API将新的事件发布到新闻feed中,发消息和做其他许多很酷的事情。
目前GitHub尚未设定官方版本的发布日期,不过估计在三月底(现在GitHub已经上线,但只能通过邀请注册)。更多关于GitHub的信息可以参见GitHub官方网站或GitHub博客。目前通过GitHub进行代码管理的开源项目列表也已经可以查阅。
其他GitHubis a web-based hosting service for projects that use theGitrevision control system. It is written usingRuby on Railsby Logical Awesome developers Chris Wanstrath, PJ Hyett, and Tom Preston-Werner. GitHub offers both commercial plans and free accounts for open source projects. According to the Git User's Survey in 2009, GitHub is the most popular Git hosting site.
The site provides social networking functionality like feeds, followers and the network graph to display how developers work on their versions of a repository.
GitHub also operates a pastebin-style site, wikis for the individual repositories and web pages that can be edited through a git repository.
As of January 2010, GitHub is operated under the name GitHub, Inc.