官网是:https://github.com/

Github百度百科:   http://baike.baidu.com/link?url=sHZLHoN0KhbEztI6Zf41QKvlZ-BB-mtdEN1hEjJC4mXFLtB-pXZV9ggxS8DpfmiYAhSZdGq1EZC-DT4F8vOQ5a

Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目前,包括Rubinius、Merb和Bitcoin在内的很多知名项目都使用了Git。Git同样可以被诸如Capistrano和Vlad the Deployer这样的部署工具所使用。

Git外文名是GitHub,类别是开源代码库。

GitHub可以托管各种Git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。

  开发人员走上更高平台的必经之路!!!

  

  GitHub(网址 https://github.com/)是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。

  GitHub的注册用户已经超过百万[1],托管的版本库数量已超三百万,其中不乏知名的开源项目,如:Ruby on Rails[2]、Hibernate[3]、phpBB[4]、jQuery[5]、Prototype[6]、Homebrew[7]等。

  GitHub于2008年4月10日正式发布[8],相比始于1999年的SourceForge[9]和2005年的GoogleCode[10],GitHub后来者居上。以2011年的数据从代码提交数量上看,GitHub已经超越其前辈[11],如图1-1所示。

                            图1-1:开源项目托管平台提交数量对照

  对于一个开源项目,从开发角度讲大体上分为两类人群,一类称为核心开发团队,他们可以向保存源代码的版本库提交,即对源代码的修改具有最终的决定权。另外一类称为贡献者,他们不属于核心开发团队,虽然也能看到源代码,但无权向版本库提交修改。

  采用传统的集中式版本控制系统(如SVN)的开源项目,这两个群体的用户体验都不是太好。如图1-2所示,项目的贡献者(非核心成员)很不“高兴”,因为他们即便有修改源代码的能力和渴望,也不能直接向版本库提交,要想成为提交者需要一个很长的建立信任的过程。然而即便是核心开发团队的成员,体验也不是太好,因为凡是涉及到版本库的操作(检入、检出、查看日志等)都需要在联网的状态下进行,网络带宽对用户体验影响相当大。

                            图1-2:使用集中式版本控制系统

  Git等分布式版本控制系统的出现,彻底颠覆了原有代码管理的组织模式。使用Git,不再依赖唯一的、集中式的版本库,而是每个开发者本地都拥有一份完整的版本库。Git并不排斥集中式的使用模式,但更倾向于将集中式版本库称为共享版本库。核心开发团队的成员和贡献者(非核心成员)都可以从共享版本库克隆一份本地版本库,但只有核心团队成员才可以将自己本地版本库的提交推送到共享版本库上。如图1-3所示。

                              图1-3:使用分布式版本控制系统

  使用Git做版本控制(如图1-3所示),核心开发团队非常“高兴”,因为他们和共享版本库之间不必一直保持连接状态,诸如查看日志、提交、创建分支等几乎全部操作都(脱离网络)在本地的版本库中完成。项目贡献者(非核心成员)也不再那么沮丧,因为版本库人人皆可更改(当然是对本地版本库而言)。稍微让贡献者感到困难的就是如何将自己对项目的改进被核心开发团队所了解并接纳。Git提供了多种途径,一个方法是先用git format-patch命令将本地提交转换为补丁文件或补丁文件序列,再通过邮件发送给核心开发团队。另外一个办法就是搭建一个自己专有的共享版本库,通过邮件创建一个拉拽请求(Pull Request),让核心团队的开发者到自己的版本库来抓取(Pull)。

  GitHub的出现进一步推动了Git的普及,简化了版本控制的管理和操作流程,为开发者提供了更好的交流平台。如图1-4所示。

                              图1-4:GitHub的协同模式

  使用GitHub,无论是项目的核心开发团队,还是普通的项目贡献者都工作得非常“愉快”。创建项目变得非常轻松,创建者只需在GitHub上点击一下鼠标即可创建一个新版本库,通过简单的Web操作即可完成项目授权进而组建项目核心团队。在GitHub中,非核心团队成员参与项目也很容易。先找到自己希望参与的项目,然后只需在Web上点击一下鼠标即可在自己的托管空间下创建一个派生(fork)的项目,并对派生项目的版本库具有读写的完全权限,就好像这个项目原本就是由自己创立的那样。当贡献者完成开发并向自己派生的版本库推送后,可以通过GitHub的Web界面向项目的核心开发团队发送一个Pull Request,请求审核。项目的核心团队收到Pull Request后审核代码,审核通过后可以直接通过Web界面执行合并操作接纳贡献者的提交。

本文转自大数据躺过的坑博客园博客,原文链接:http://www.cnblogs.com/zlslch/p/5717508.html,如需转载请自行联系原作者

Github学习系列之Github是什么?相关推荐

  1. Git学习系列之如何正确且高效地将本地项目上传到Github(图文详解)

    不多说,直接上干货! 首先你需要一个Github账号,所以还没有的话先去注册吧! https://github.com/ 见 如何走上更高平台分享传递干货知识:(开通个人Github面向开源及私有软件 ...

  2. GitHub实战系列~1.环境部署+创建第一个文件 2015-12-9

    GitHub实战系列汇总:http://www.cnblogs.com/dunitian/p/5038719.html ---------------------------------------- ...

  3. 《github精选系列》——非常有趣实用的python爬虫例子

    1 简单总结 1 淘宝模拟登录 2 天猫商品数据爬虫 3 爬取淘宝我已购买的宝贝数据 4 每天不同时间段通过微信发消息提醒女友 5 爬取5K分辨率超清唯美壁纸 6 爬取豆瓣排行榜电影数据(含GUI界面 ...

  4. GitHub学习总结

    花了半天的功夫,终于把github这个东西搞秦楚了,算是入了门,以后再慢慢学习实践,不要想一口吃成个大胖子,先入门,随之时间的向前推进,你是理解和使用熟练度会有很大的提高 的. ======== 为了 ...

  5. eBPF学习仓库bpf_study-996station GitHub鉴赏官

    推荐理由:eBPF学习参考资料,Linux内核观测技术BPF免费下载(英文) "eBPF 是我见过的 Linux 中最神奇的技术,没有之一,已成为 Linux 内核中顶级子模块,从 tcpd ...

  6. 在 GitHub 学习,成长为自己想要的样子|HelloGitHub 访谈

    万事开头难,我们经过长期的策划和筹备,终于推出了 HelloGitHub 访谈系列「开源项目作者的访谈」.这是一个采访个人开源项目作者的栏目,内容侧重于开源项目作者与开源的故事. 我们深知想要做好一个 ...

  7. 07.GitHub实战系列~7.Git之VS2013团队开发(如果不想了解git命令直接学这篇即可)...

    GitHub实战系列汇总:http://www.cnblogs.com/dunitian/p/5038719.html ---------------------------------------- ...

  8. github 和git_学习编码时如何学习Git和GitHub

    github 和git by Iago Rodrigues 通过Iago Rodrigues 学习编码时如何学习Git和GitHub (How you can learn Git and GitHub ...

  9. Git和Github介绍,294页『Git与Github学习使用指南』分享

    1 前言 相信大家写代码的时候,心里肯定想找一个别人写好的,可以直接上手的代码,再做相应的修改和改进.那哪里有这些代码呢? 答案自然是Github了,那GitHub又是啥? GitHub是世界上最大的 ...

最新文章

  1. [Server] 服务器配置SSH登录邮件通知
  2. 【2021年度训练联盟热身训练赛第四场】Happy Number(python)
  3. cas单点登陆。就这一篇就够了!!!!!
  4. java客户端访问kafka
  5. 散列查找 散列表(哈希表)
  6. div table 超出了_div包裹的table,table的宽度超出了的宽度,出现的滚动条的在windows下无法拖动...
  7. Linux操作系统RedHat6.5安装
  8. alt+x+b没反应_Alt键的这几种用法,你一定要知道
  9. 微信封杀下的互联网江湖
  10. ubuntu16.4 配置logstash6.3.2 kibanan6.3.2
  11. 局域网屏幕共享_【宅家宝典】将手机屏幕搬上电视,只需解锁一个技能!
  12. →箭头符号大全复制_特殊符号大全8908194
  13. backdrop-filter,让你的网站熠熠生”毛’
  14. 服务器中勒索病毒解密恢复 SQL数据库中勒索病毒解密恢复 SQL数据库被加密恢复...
  15. 启动计算机时进入bios界面,电脑开机就进入bios界面怎么办
  16. 数据挖掘和知识发现的技术、方法及应用
  17. 【新股分析】知名分销商双财庄将登陆港交所:复合年增长率高达16.02%
  18. 对坐标的曲线积分求做功_曲线积分与曲面积分(前篇 曲线积分-坐标曲线积分-格林公式)...
  19. Syncthing局域网配置设备连接同步文件
  20. .NET ASP.NET 中web窗体(.aspx)利用ajax实现局部刷新

热门文章

  1. org.apache.log4j.Logger详解
  2. DNA Sorting(排序)
  3. 主运行循环main run loop的一些理解
  4. delphi解决:Thread error 拒绝访问(5)
  5. 《快学 Go 语言》第 5 课 —— 神奇的切片
  6. 《Pro ASP.NET MVC 3 Framework》学习笔记之十三【示例项目SportsStore】
  7. vscode snippet利器
  8. EXSI 连接硬件USB pass-through
  9. 需求分析说明书(四)
  10. css3 text-shadow