Github学习系列之Github是什么?

简介:

   官网是: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界面,但与其它像 SourceForgeGoogle 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,如需转载请自行联系原作者

相关文章
|
2月前
|
安全 Shell 网络安全
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
131 0
|
9月前
|
Java 程序员
GitHub最新发布Java面试突击手册+P5-P8学习图谱,一夜直接竟爆火
什么是金九银十? “金九银十指的是每年的九十月份都是人才招聘的高峰期,因为跟春节和春运紧接,到人才市场,人都是满的,所以称为金九;伴随的十月则称为银十。”
|
6月前
|
设计模式 架构师 Java
GitHub限时开源阿里Java架构师学习手册,上线即标星35k+
今年受大环境影响面试于往年相比难得多,对程序员要求越来越高!环境我们无法改变能改变的就是自己,努力提升技术!
|
6月前
|
Linux 网络安全 开发工具
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
|
7月前
|
设计模式 架构师 Java
GitHub限时开源阿里Java架构师学习手册,上线即标星35k+
前言 今年受大环境影响面试于往年相比难得多,对程序员要求越来越高!环境我们无法改变能改变的就是自己,努力提升技术!
67 0
|
8月前
|
Java 关系型数据库 MySQL
太牛了! GitHub大牛呕心沥血整理的5000页Java学习手册文档
今天整理了一套 5000 页的 Java 学习手册,,新鲜出炉,分享给大家!此手册内容专注 Java技术,包括 JavaWeb,SSM,Linux,Spring Boot,MyBatis,MySQL,Nginx,Git,GitHub,Servlet,IDEA,多线程,集合,JVM,DeBug, Dubbo,Redis,算法,面试题等相关内容。
|
8月前
|
Java 程序员
推荐一个GitHub上牛b的Java学习项目!已整理成了文档版本
很多Java程序员一直希望找到一份完整的学习路径,但是市面上很多书都是专注某一个领域的,没有一份完整的大图,以至于很多程序员很迷茫,不知道自己到底应该从哪里开始学,或者不知道自己学习些什么。
推荐一个GitHub上牛b的Java学习项目!已整理成了文档版本
|
8月前
|
设计模式 Cloud Native Java
GitHub爆出阿里内部突击路线+配套学习资源,直接霸榜
又到了一年一度的备战秋招的时间,虽然这两年因为经济环境不太好,年初互联网行业的各大厂都再裁员,前半年的行业发展趋于平稳,随着经济形势正在复苏,今年秋招各个公司hc也逐渐开放,很多小伙伴也反馈面试机会变多了,想查缺补漏冲刺大厂,我软磨硬泡终于从阿里p8手里弄来了突击秘籍,分享给大家。 涨薪秘籍从Java核心并发开始,到经典的框架源码设计模式、分布式微服务架构设计、微服务NetFilx体系和Alibaba体系、微服务架构性能调优、云原生以及虚拟化、Spring Cloud Alibaba项目实战。
114 2
GitHub爆出阿里内部突击路线+配套学习资源,直接霸榜
|
9月前
|
Shell 开发工具 git
git & github的使用与学习
git & github的使用与学习
44 0
|
10月前
|
消息中间件 JavaScript NoSQL
推荐github上学习java的项目
推荐github上学习java的项目
110 0