要了解Github,我们首先要知道Git,Git是管理代码的工具,写代码不是件轻松的事儿,一个人写的时候已经不轻松了,一群人写就更不轻松了,但这世界上很多事都是怎么不轻松怎么来的,大部分人都会和别人一起写代码,问题在于,这么多人写一个东西,你今天写一点,我明天写一点,然后发现你写错了,又影响到了我前天写的,最后汇总的时候怎么查找错误?又在什么时候汇总?这些问题太多了,想想就觉得还是食物美好。为了让写代码这件事儿美好一点,我们有了一种名叫代码管理的东西,Git正是其中之一,我使用过的还有SVN,但是今天我们只讲Git。
Git的核心思想是『分布式』,我们在服务器上面有一个『主仓库』,这里放的是拿得出台面的代码,我们也可以在自己的电脑上创建分支,这些分支由『主仓库』克隆而来,然后我们就可以愉快的在自己的电脑上写代码了,写完代码可以同步在自己电脑的分支里面,当你觉得自己的代码拿得出台面,我们可以申请把自己的代码更新到『主仓库』里面,一旦通过这样的审核,我们就对『主仓库』做了某种贡献,世界各地的杰出程序员不断的为一个项目的『主仓库』做贡献,让这个项目变得越来越完善。
Github是运用Git思想来工作的一个商业网站,所有开发者都可以在Github上面为自己的项目创建一个『主仓库』,好的项目就像狼群中的小鲜肉一样,大量的开发者会把这个主仓库中的代码克隆到自己的『分仓库』去,用更性感的话来说,就是『Fork』。
Git的方式的确很优雅,但问题在于,会有人愿意把自己辛辛苦苦的代码拿出来公布,并且让人Fork么?
会,不仅会,而且很多,Github有超过140万用户,你可能会撇撇嘴说那个啥啥社交软件都有2000万用户,区区140万算个啥。可是这140万用户几乎涵盖了这个世界上最优秀的开发者,我相信,你那个有2000W用户的社交软件的工程师,肯定也是用Github的。任何项目,在Github上面获得fork或star,都意味着其它工程师对这个项目的认可,这比100个QQ空间的赞更有价值。
为什么这些优秀的工程师会开源自己的项目?
因为开源是一种精神。
无数的软件开发者苦心积虑保护自己的代码不被破解,而还是被聪明绝顶的脚本小子破解了,但破解无数软件的脚本小子在接下来的破解中却傻眼了,因为这是开源的,不用破解也就破解了破解。
闭源意味着封闭,而开源则意味着开放,封闭很难进步,开放才会进步。开放让人类的智慧有聚集的可能,人类的智慧聚集起来不再是1+1=2,这是开源的力量。
闭源是一种排斥,而开源是包容,闭源是单打独斗,开源是同仇敌忾,闭源是敝帚自珍,开源是无私奉献,闭源是小富即安,开源是世界大同,闭源是资本主义,开源是共产主义。

Github是什么?看完你就了解一些了的更多相关文章

  1. 这个大学在Github开源了计算机课程,看完在家上个 985

    微信搜「后端技术学堂」有干货,本文已收录于Github:https://github.com/imcoderlemon/CodeClass 内含原创干货文章,千本计算机电子书,3本LeetCode题解 ...

  2. 【保姆级】利用Github搭建自己的个人博客,看完就会

    大家好,我是辰哥~ 作为一名喜欢技术的爱好者,平时喜欢把自己学习技术的心得或者一些踩坑.易错的过程记录下来,首选的是技术平台(博客),今天辰哥来教大家如何利用Github来搭建一个自己的个人博客平台. ...

  3. 盘点国内程序员不常用的热门iOS第三方库:看完,还敢自称”精通iOS开发”吗?【转载】

    综合github上各个项目的关注度与具体使用情况,涵盖功能,UI,数据库,自动化测试,编程工具等类型,看完,还敢自称”精通iOS开发”吗? https://github.com/syedhali/EZ ...

  4. 傻瓜看完都可以简单使用Git

    作为当下最流行的版本控制系统,Git是一个分布式版本控制系统,跟SVN等集中式版本控制有很多使用上的不同.万事开头难,想要最快学会使用Git,最简单的就是下了客户端就直接去用,一边用一边学.本文手把手 ...

  5. Android图表库MPAndroidChart(二)——线形图的方方面面,看完你会回来感谢我的

    Android图表库MPAndroidChart(二)--线形图的方方面面,看完你会回来感谢我的 在学习本课程之前我建议先把我之前的博客看完,这样对整体的流程有一个大致的了解 Android图表库MP ...

  6. 关于 Docker 镜像的操作,看完这篇就够啦 !(下)

    紧接着上篇<关于 Docker 镜像的操作,看完这篇就够啦 !(上)>,奉上下篇 !!! 镜像作为 Docker 三大核心概念中最重要的一个关键词,它有很多操作,是您想学习容器技术不得不掌 ...

  7. HashMap? ConcurrentHashMap? 相信看完这篇没人能难住你!

    前言 Map 这样的 Key Value 在软件开发中是非常经典的结构,常用于在内存中存放数据. 本篇主要想讨论 ConcurrentHashMap 这样一个并发容器,在正式开始之前我觉得有必要谈谈 ...

  8. 【Spring注解驱动开发】BeanPostProcessor在Spring底层是如何使用的?看完这篇我懂了!!

    写在前面 在<[String注解驱动开发]面试官再问你BeanPostProcessor的执行流程,就把这篇文章甩给他!>一文中,我们详细的介绍了BeanPostProcessor的执行流 ...

  9. fish_redux使用详解---看完就会用!

    说句心里话,这篇文章,来来回回修改了很多次,如果认真看完这篇文章,还不会写fish_redux,请在评论里喷我. 前言 来学学难搞的fish_redux框架吧,这个框架,官方的文档真是一言难尽,比fl ...

  10. 看完SQL Server 2014 Q/A答疑集锦:想不升级都难!

    看完SQL Server 2014 Q/A答疑集锦:想不升级都难! 转载自:http://mp.weixin.qq.com/s/5rZCgnMKmJqeC7hbe4CZ_g 本期嘉宾为微软技术中心技术 ...

随机推荐

  1. ERROR ITMS-90049错误解决

    检查一下项目有集成友盟,shareSDK这种第三方包,里面有个腾讯bundle,包含了一个Info.plist. 去掉,就可以了.类似有其他第三方的bundle,可能也会出现这个问题. 原因估计是Ap ...

  2. 【转】图解SQL的各种连接join

    原帖地址:http://www.nowamagic.net/librarys/veda/detail/936 图解SQL的各种连接join 让你对SQL的连接一目了然 在 2011年12月22日 那天 ...

  3. MySql事务及JDBC对事务的使用

    一 .事务的几个重要特性 1. 原子性 事务内的每个内容不可分割,是一个统一的整体.或同时进行或同时消亡. 2.一致性 事务执行前和事务执行后,状态都是统一的.如A转B 100元,A和B数据总额度没有 ...

  4. Openjudge/Poj 1183 反正切函数的应用

    1.链接地址: http://bailian.openjudge.cn/practice/1183 http://poj.org/problem?id=1183 2.题目: 总时间限制: 1000ms ...

  5. <UNIX环境高级编程>文件共享及fork函数

    UNIX系统支持在不同进程间共享打开文件.内核使用3种数据结构表示打开文件,它们之间的关系决定了文件共享方面一个进程对另一个进程可能产生的影响. 内核维持了3个表,即进程表,文件表和v节点表.具体如下 ...

  6. Git 安装与使用(一)

    一.简介 1.集中式版本控制系统(CVS):Svn     * 版本库是集中存放在中央服务器中的,客户端需要先从中央服务器取得最新的版本,然后再干活,活干完后,再把自己的代码推送给中央服务器.    ...

  7. JavaScript 对象的几种创建方法

    /** * Created by 2016 on 2016/6/4. */ function Box(){ var obj = new obj(); obj.name = "Lee" ...

  8. sublime 设置文件默认打开方式

    win7,sublime text 3 无法关联文件 删除 HKEY_CURRENT_USER\Software\Classes\Applications下的Sublime_Text.exe项.你就发 ...

  9. poj 2001 Shortest Prefixes trie入门

    Shortest Prefixes 题意:输入不超过1000个字符串,每个字符串为小写字母,长度不超过20:之后输出每个字符串可以简写的最短前缀串: Sample Input carbohydrate ...

  10. 【BZOJ】1001: [BeiJing2006]狼抓兔子 Dinic算法求解平面图对偶图-最小割

    1001: [BeiJing2006]狼抓兔子 Description 左上角点为(1,1),右下角点为(N,M)(上图中N=4,M=5).有以下 三种类型的道路 1:(x,y)<==>( ...