初识 GitHub · 简介篇
1 前言
GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub。
GitHub 于 2008 年 4 月 10 日正式上线,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,其托管版本数量非常之多,而且其中不乏知名开源项目,例如 Ruby on Rails、jQuery、python 等。
作为开源代码库以及版本控制系统,Github 拥有超过千万的开发者用户。随着越来越多的应用程序转移到了云上,Github 已经成为了管理软件开发以及发现已有代码的首选方法。
如前所述,作为一个分布式的版本控制系统,在 Git 中并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。
GitHub 可以托管各种 Git 库,并提供一个 web 界面,但与其它像 SourceForge 或 Google Code 这样的服务不同,GitHub 的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的Fork
的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的pull request
机制向项目负责人申请代码合并。
GitHub 项目本身自然而然的也在 GitHub 上进行托管,只不过在一个私有的,公共视图不可见的库中。开源项目可以免费托管,但私有库则并非如此。在 GitHub,用户可以通过Explore
轻而易举地找到海量的开源代码。因此,称之为程序员的“ 圣地 ”也不过吧?
2 业界大神
在 GitHub 上建立个人主页的业界大神多如牛毛,在此仅介绍 3 位,以供大家膜拜!
2.1 Linus Torvalds
- GitHub 主页:https://github.com/torvalds
Linus Torvalds,全球著名的电脑程序员、黑客,Linux 之父。
2.2 John Resig
- Github主页: https://github.com/jeresig
John Resig,jQuery 的创始人和技术领袖,著有《Pro JavaScript Techniques》(即《精通JavaScript》)等经典 JavaScript 书籍。
2.3 Douglas Crockford
- Github主页: https://github.com/douglascrockford
Douglas Crockford 是 JavaScript 开发社区最知名的权威,是 JSON、JSLint、JSMin 和 ADSafe 之父,是《JavaScript: The Good Parts》的作者。
3 开源项目及公司
在 GitHub 上开源的著名项目非常之多,选择在 GitHub 上开源的世界顶级公司也很多,在此也各罗列 3 个,以供大家膜拜!
3.1 项目
- Linux:https://github.com/torvalds/linux
- Swift:https://github.com/apple/swift
- Ruby:https://github.com/ruby/ruby
3.2 公司
- Google: https://github.com/google
- Microsoft:https://github.com/microsoft
- Alibaba:https://github.com/alibaba
4 篇尾语
通过上面的介绍,相信大家已经对 GitHub 有了初步的了解啦!窥一斑而知全豹,GitHub 的魅力可想而知。作为程序员大军中的一员,你是想泯然于众人?还是想与大神们“零距离”接触、碰撞出思维的火花?GitHub,也许就是你人生中至关重要的转折点。
咳咳,好吧,我承认,上面说的太玄乎了,现在说点实在的。在中国(全球更是如此),顶级的互联网公司,如 BAT,都很看重 GitHub ,如何你能够在 GitHub 上面表现的非常活跃,或者自己开源几个项目(并不要求这些项目多么伟大),甚至对一些著名的开源项目贡献了自己的代码,相信这一切,都会为你加分不少,从而脱颖而出。此外,GitHub 也是一个很好的学习场所,那么多的开源项目,称之为一座“知识的宝库”也不为过。因此,无论是从求职还是个人发展来说,选择 GitHub 并不会错。
最后,附上博主的 GitHub 账号,欢迎大家
Follow
:维C果糖
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 为matplotlib设置不同的主题
- 模式利器 | MEIC污染源清单向WRF-Chem模式网格插值分配工具——meic2wrf
- Windows给力!可以扔掉Linux虚拟机了!
- 好慌,Redis这么多集群方案,要用哪种?
- 你真的了解MySQL 8.0 数据字典吗?
- 《调教命令行09》磁盘很廉价,放小电影最合适了
- 既保护隐私又快速训练,Facebook开源Opacus库,利用差分隐私训练PyTorch模型
- 为什么Java中1000==1000为false而100==100为true?
- Java自动化测试 (元素定位 23)
- Java自动化测试(webdriver常用API 24)
- Java自动化测试(特殊元素处理 25)
- 那些Vue开发遇到的坑---响应式系统
- 基于Ansible和Devops的一键测试环境部署实践
- STM32硬核DIY机械键盘|蓝牙USB双模|灯控
- R语言隐马尔可夫模型HMM识别不断变化的股票市场条件