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月前
|
编解码 Oracle Java
java9到java17的新特性学习--github新项目
本文宣布了一个名为"JavaLearnNote"的新GitHub项目,该项目旨在帮助Java开发者深入理解和掌握从Java 9到Java 17的每个版本的关键新特性,并通过实战演示、社区支持和持续更新来促进学习。
87 3
|
2月前
|
JSON JavaScript 前端开发
《进阶篇第7章》学习vue中的ajax之后,练习vue案例-github用户搜索案例
《进阶篇第7章》学习vue中的ajax之后,练习vue案例-github用户搜索案例
18 0
|
2月前
|
Unix Shell 网络安全
git学习六:(bug总结)git@github.com: Permission denied (publickey).等
本文是关于解决在使用Git和GitHub时遇到的“git@github.com: Permission denied (publickey)”错误的指南。文章提供了详细的步骤,包括确认SSH Agent运行状态、检查密钥配置、确保密钥匹配、验证仓库URL、检查权限和代理设置,以及配置SSH文件。这些步骤帮助用户诊断并解决SSH认证问题。
210 0
|
4月前
|
数据采集 数据可视化 Ruby
GitHub星标破万!Python学习教程(超详细),真的太强了!
Python 是一门初学者友好的编程语言,想要完全掌握它,你不必花上太多的时间和精力。 Python 的设计哲学之一就是简单易学,体现在两个方面: 1. 语法简洁明了:相对 Ruby 和 Perl,它的语法特性不多不少,大多数都很简单直接,不玩儿玄学。 2. 切入点很多:Python 可以让你可以做很多事情,科学计算和数据分析、爬虫、Web 网站、游戏、命令行实用工具等等等等,总有一个是你感兴趣并且愿意投入时间的。
|
6月前
|
Python
GitHub爆赞!终于有大佬把《Python学习手册》学习笔记分享出来了
这份笔记的目标是为了给出一份比较精炼,但是又要浅显易懂的Python教程。《Python学习手册》中文第四版虽然比较简单,但是措辞比较罗嗦,而且一个语法点往往散落在多个章节,不方便读者总结。 我在做笔记时,将一个知识点的内容都统筹在一个章节里面,因此提炼性大大提高。而且还有《Python学习手册》中文第四版的翻译在某些章节(可能难度较大?)措辞可能前后矛盾。当知识点提炼之后就能够很快的找到一些难以理解的概念的上下文,方便吃透这些难点。
GitHub爆赞!终于有大佬把《Python学习手册》学习笔记分享出来了
这份笔记的目标是为了给出一份比较精炼,但是又要浅显易懂的Python教程。《Python学习手册》中文第四版虽然比较简单,但是措辞比较罗嗦,而且一个语法点往往散落在多个章节,不方便读者总结。 我在做笔记时,将一个知识点的内容都统筹在一个章节里面,因此提炼性大大提高。而且还有《Python学习手册》中文第四版的翻译在某些章节(可能难度较大?)措辞可能前后矛盾。当知识点提炼之后就能够很快的找到一些难以理解的概念的上下文,方便吃透这些难点。
|
6月前
|
前端开发 Java C#
GitHub突破5k Star!这件事情我坚持了3年,努力打造C#/.NET/.NET Core全面的学习、工作、面试指南知识库
GitHub突破5k Star!这件事情我坚持了3年,努力打造C#/.NET/.NET Core全面的学习、工作、面试指南知识库
|
6月前
开始学习Github
开始学习Github
GitHub最新发布Java面试突击手册+P5-P8学习图谱,一夜直接竟爆火
什么是金九银十? “金九银十指的是每年的九十月份都是人才招聘的高峰期,因为跟春节和春运紧接,到人才市场,人都是满的,所以称为金九;伴随的十月则称为银十。”
|
7月前
|
安全 Shell 网络安全
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
208 0