从0开始学习GitHup系列(一)
我自己接触 GitHub 较早,可以说在 GitHub 在国内还没怎么普及、流行的时候就开始接触使
用了,之后对我的工作以及思维方式产生了很大的影响,也大大提升了自己的开发效率与个
人能力。从第一个使用的开源项目,到自己的第一篇博客,再到后面自己的第一个开源项
目,都享受着 GitHub 给我带来的好处。
后面渐渐的自己也热衷于分享,拥抱开源,从博客,到公众号都在坚持写文章,分享自己过
来人的技术积累、职场经验、人生总结等,甚至可以说是 GitHub 影响了我一生。
有一天我突然发现,关注我公众号的读者们,很多竟然没听说过 GitHub,或者部分听说过但
是也没怎么使用过,这真的是巨大的一个损失啊,于是,应读者要求,我准备自己从 0 开
始,写一篇针对初学者的 GitHub 教程,没想到,利用自己业余时间,持续了几个月,竟然形
成了一个系列,评价也相当不错。
这个系列最初反响不错之后,甚至有出版社找我出书,还有部分平台找我合作,希望我出这
个教程来进行销售,说实话,开的条件也都还不错的,可是我都一一拒绝了,原因很简单,
既然答应了要出这个系列,就必须兑现承诺,最终我终于一篇篇在公众号上全部更新完了。
后面我的公号新增了不少读者,可能不少人不知道有这个系列,姑且马上过年了,趁这个机
会我整理了一下,并把它做成一个电子书送给你们,以后需要的时候,拿出来看一下,说不
定就对你有帮助。
这个教程包括如下内容:
1. 初识 GitHub
2. 加入 GitHub
3. Git 速成
4. 向 GitHub 提交代码
5. Git 进阶
6. 团队合作利器:Git 分支详解
7. GitHub 常见的几种操作
8. 发现好用的开源项目
希望通过这个教程,人人可以很方便的掌握 Git/GitHub 的使用。
版权声明:
本系列内容首发于我的微信公众号 stormzhang,原创作者 stormzhang,个人博
客:http://stormzhang.com ,可以随意转载,但必须保持署名,禁止商用。
初识 GitHub
1. 写在前面
我一直认为 GitHub 是程序员必备技能,程序员应该没有不知道 GitHub 的才对,没想到这两
天留言里给我留言最多的就是想让我写关于 GitHub 的教程,说看了不少资料还是一头雾水,
我转念一想,我当初接触 GitHub 也大概工作了一年多才开始学习使用,我读者里很多是初学
者,而且还有很多是在校大学生,所以不会用 GitHub 也就不奇怪了,所以我觉得写一写关于
GitHub 的教程就非常有必要了!
2. 为什么还要造*
很多人难免要问这个问题,说网上关于 GitHub 的资料很多,为什么还要写呢?讲真,网上关
于 Android 的资料更多,为什么你们还喜欢看我写的文章呢?是因为哪怕同样的内容,我写
出来之后就有了我的风格,除了我的幽默以及我的帅,关键的是我有办法让你们看的轻松易
懂,并且还有我个人的一些见解与指导,这大概是一种特殊的魅力吧!
我是从小白一路过来的,很能理解你们内心的感受与困惑,因为这些阶段都是我自己亲身经
历过的,所以我写的文章都会从你们的角度去出发,并且我对文章高要求,除了排版、配图
很用心外,文章的内容每次写完我都会亲自看三四遍,确保不会出现误导以及你们理解不了
的情况,你们看的很轻松易懂的文章其实因为我背后做了很多的功课。
所以,为了你们,我觉得有必要用我的风格去教你们如何从0开始,跟着我一步步学习
GitHub !
3. 什么是 GitHub
确切的说 GitHub 是一家公司,位于旧金山,由 Chris Wanstrath, PJ Hyett 与 Tom Preston-
Werner 三位开发者在2008年4月创办。这是它的 Logo:
2008年4月10日,GitHub正式成立,地址:How people build software · GitHub ,主要提供基
于git的版本托管服务。一经上线,它的发展速度惊为天人,截止目前,GitHub 已经发展成全
球最大的开(同)源(性)社区。
4. GitHub 与 Git 的关系
这个我还专门在群里调查过,很多人以为 GitHub 就是 Git,其实这是一个理解误区。
Git 是一款免费、开源的分布式版本控制系统,他是著名的 Linux 发明者 Linus Torvalds 开发
的。说到版本控制系统,估计很多人都用过 SVN ,只不过 Git 是新时代的产物,如果你还在
用 SVN 来管理你的代码,那就真的有些落伍了。不管是学习 GitHub ,还是以后想从事编程
行业,Git 都可以算是必备技能了,所以从现在开始建议你先去学习熟悉下 Git ,后面我会有
文章推荐一些适合新手的 Git 学习资料给你们。
而 GitHub 上面说了,主要提供基于 git 的版本托管服务。也就是说现在 GitHub 上托管的所有
项目代码都是基于 Git 来进行版本控制的,所以 Git 只是 GitHub 上用来管理项目的一个工具
而已,GitHub 的功能可远不止于此!
5. GitHub 的影响力
上面我说了 GitHub 现在毫无疑问基本是全球最大的开源社区了,这样说你们可能认为未免有
点浮夸,且听我一一举证:
全球*科技公司纷纷加入 GitHub ,并贡献他们自己的项目代
码
Google: https://github.com/google
Facebook: https://github.com/facebook
Twitter:https://github.com/twitter
微软:https://github.com/microsoft
Square:https://github.com/square
...
全球*开源项目都优先选择在 GitHub 上开源
Linux:https://github.com/torvalds/linux
Rails:https://github.com/rails/rails
Nodejs:https://github.com/nodejs/node
Swift:https://github.com/apple/swift
CoffeeScript:https://github.com/jashkenas/coffeescript
Ruby:https://github.com/ruby/ruby
...
全球*编程大牛加入GitHub
Linux 发明者 Linus Torvalds:https://github.com/torvalds
Rails 创始人 DHH:https://github.com/dhh
被称为「Android之神」的 JakeWharton:https://github.com/JakeWharton , 你们用的
很多开源库如 ButterKnife、OkHttp、 Retrofit、 Picasso、ViewPagerIndicator 等都是出
自他之手!
其他就不一一列举了,GitHub 上活跃的很多是 Google 、Square、阿里等公司的员工,有些
甚至还是Google Android Team组的,所以在这里你可以接触到全球*编程大牛!
6. GitHub 有什么用
学习优秀的开源项目
开源社区一直有一句流行的话叫「不要重复发明*」,某种意义上正是因为开源社区的贡
献,我们的软件开发才能变得越来越容易,越来越快速。试想你在做项目时,如果每一模块
都要自己去写,如网络库、图片加载库、ORM库等等,自己写的好不好是一回事,时间与资
源是很大的成本。对于大公司可能会有人力与资源去发明一套自己的*,但是对于大部分
互联网创业公司来说时间就是一切。而且你在使用开源项目的过程也可以学习他们优秀的设
计思想、实现方式,这是最好的学习资料,也是一份提升自己能力的绝佳方式!
多人协作
如果你想发起一个项目,比如翻译一份不错的英文文档,觉得一个人的精力不够,所以你需
要更多的人参与进来,这时候 GitHub 是你的最佳选择,感兴趣的人可以参与进来,利用业余
时间对这个项目做贡献,然后可以互相审核、合并,简直不要太棒!
搭建博客、个人网站或者公司官网
这个就不用多说了,现在越来越多的博客都是基于 GitHub Pages 来搭建的了,你可以随心所
欲的定制自己的样式,可以给你博客买个逼格高的域名,再也不用忍受各大博客网站的约束
与各式各样的广告了!
写作
如果你喜欢写作,而且基于 Markdown, 并准备出版书籍,那么推荐你用 Gitbook ,技术写
作人的最爱!
个人简历
如果你有一个活跃的 GitHub 账号,上面有自己不错的开源项目,还经常给别的开源项目提问
题,push 代码,那么你找工作将是一个非常大的优势,现在程序员的招聘很多公司都很看中
你 GitHub 账号,某种意义上 GitHub 就可以算是你的简历了。而且不仅国内,很多国外的科
技公司都会通过 GitHub 来寻找优秀的人才,比如我甚至通过 GitHub 收到过 Facebook 的邀
请邮件!
其他
当然 GitHub 能做的还远不止这些,我见过很多在 GitHub 搞的一些有意思的项目,有找男朋
友的,甚至还有利用 GitHub 的 commit 丧心病狂的秀恩爱的,没错,那个丧心病狂的人就是
我,如果你前段日子关注了我的 GitHub ,那么能看到这么一个壮观的景象:
7. 加入 GitHub
读完我的文章,我相信你已经蠢蠢欲动了,从现在开始,立刻、马上去注册个 GitHub
「https://github.com/」,去体验一番,不会用不要紧,接下来我会有一系列详细的文章,来
教你学会使用 GitHub !
但是为了保证文章的质量,我要做很多准备工作,我没法保证每天都会连载,但是我会尽力
尽快更新这个系列,让你们从0开始一步步一起来学习,如果周围有同学或者朋友想要学习
的,那赶紧转发或者推荐他关注这个系列的文章,毕竟有个小伙伴一起学会更有氛围,后续
除了理论我还会考虑结合实践,我不信你学不会!