GitHub入门与实践

声明:本文乃转载。原作者:黎赵太郎

Welcome to GitHub

什么是GitHub

GitHub是一个同性交友社区,不好意思,拿错剧本了。GitHubWikipedia上的介绍是这样的:

GitHub是一个通过Git进行版本控制的软件源代码托管服务,由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner使用Ruby on Rails编写而成。

简单来说,GitHub是一个让开发者与他人共享代码的地方。其公司总部位于美国加利福利亚州旧金山,其logo是一只名为Octocat的可爱章鱼猫,就是下面的这个小萌萌了↓

 


 

当然,她还有可能是这样的?

 


 

GitHub与Git有什么区别

Git其实是一种版本控制的协议,定义了一个版本控制的各种操作,类似的还有SVN/CVS,但是和SVN/CVS不同的是,Git采用的是分布式的方式,并不需要服务器端的软件。

而GitHub是基于Git协议的一个网络代码仓库,也就是说,GitHub上公开的软件源代码都是有Git进行管理,但是GitHub除了提供Git仓库的托管服务外,还为开发者或团队提供了一系列的功能(后面会详细说明),例如在线浏览、搜索和管理、社交等等,帮助开发者和团队高效率、高品质的编写代码。

(好吧,说了这么多拗口的话,简单来说,你可以将Git与GitHub的关系理解为「魔兽争霸」和「对战平台」的关系。)

GitHub的使用情况

截止到2015年,GitHub已经有超过九百万注册用户和2110万代码库。事实上已经成为了世界上最大的代码存放网站和开源社区。全世界每时每刻都有开发者在使用它。

GitHub提供的主要功能

  • Git仓库

    一般情况下,当我们注册了GitHub账户之后,我们免费新建任意个GitHub提供的Git仓库。如果需要建立只对特定用户或自己公开的私有仓库,则需要按照Plans for all workflows支付每月最低7美元的费用。

     


     
  • Organization

    通常情况下,如果只是个人使用,个人账户就足够了。但如果是团队或者公司,建议使用Organization账户,它可以统一管理账户和权限,同时也能统一支付一些费用。

    和个人账户类似,如果只是创建公开仓库,创建Organization账户是不收费的。因此,对于小型开发团队而言,Organization或许是个不错的选择。

     

     

    下面是Google Organization账户信息:

     


     
  • Issue

    Issue用于对有一个任务或问题进行追踪和管理。这有点类似于BUG管理系统(例如Mozilla公司出品的Bugzilla)。在GitHub上,我们每次创建一个Pull Request时,都会要求创建一个Issue。

    每次将要对功能进行更改或者修正时,都应该创建一个Issue(除非是有特殊的原因,最好使用英文,如果使用中文,项目所有者还需要耗费时间和精力替你翻译,而这本是你应该完成的事物),讨论或者修正都围绕这个Issue为中心进行。只要查看Issue,就能了解和这个更改有关的信息,并以此进行管理。

    在Git的提交信息中写上Issue的ID(例如「#7」),GitHub就会自动生成从Issue到对应提交的链接。另外,只要按照特定的格式描述提交信息,还可以关闭Issue。

    下面是google-gson项目的一个Issue。

     

     

    ps:请不要在Issue中讨论和项目无关的内容(例如灌水、无意义的聊天等),也不要连着发帖,因为你每发布一次无意义的内容,项目的作者和关注(Watch)这个项目的人就会收到一封垃圾邮件。所以,请共同维护GitHub的良好氛围。

  • Wiki

    通过Wiki功能,任何人都可以随时对一篇文章进行更改并保存,因此可以多人共同完成一篇文章。该功能常用于在开发文档或手册的编写中。

    Wiki也是作为Git仓库进行管理的,改进的历史记录也会被切实保存,使用者可以放心的改写,并且支持克隆到本地进行编辑。

    这是开源大户square的项目okhttp的wiki首页:

     


     
  • Pull Request

    当我们fork了别人的代码,并做了相应的修改之后,就可以Pull Request向仓库的所有者提出申请,请求对方合并自己修改之后的代码。发出Pull Request之后,对方的管理人员可以查看Pull Request的内容及其中包含的代码更改。

    同时,你可以利用GitHub提供的对Pull Request和源代码差别评论的功能,以行为单位对代码进行讨论。

    square的另外一个项目retrofitPull Request:

     

  • Gist

    有时候我们并不需要为了一个小小的代码片段而开启一个仓库,这个时候Gist就派上用场了。Gist是一个有趣的服务,最简单的功能就是分享代码片段,但她的功能并不局限于此,Gist并不仅仅为开发者服务,任何人(允许匿名)都可以利用她分享内容。

  • GitHub Pages

    GitHub Pages 是免费的静态空间服务,可以架设静态网站,包括静态博客。我们可以利用GitHub Pages搭配Hexo或者Jekyll等静态博客系统搭建我们自己的博客。

    这是我利用GitHub Pages和Hexo搭配的博客:
    Tonny's Blog

GitHub上的一些知名项目

  • Linux - Linux kernel source tree.(43k star, 无穷个贡献者)
  • Git
  • node - Node.js JavaScript runtime.
  • rails - Ruby on Rails.

彩蛋

 

GitHub,同性交友,真人约会,排解寂寞,释放压力。百分百真人,谁没事会去注册GitHub啊,通过“Follow”交到同性好友;通过Issue和PR互动和交流。So, f**k, oh no, follow me on GitHub。

本文同步发表于TonnyL的简书-GitHub入门与实践GitHub入门与实践 - 知乎专栏TonnyL的博客-GitHub入门与实践, 转载请注明作者和出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值