Git学习总结(2)——初识 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 ,并贡献他们自己的项目代码
全球顶级开源项目都优先选择在 GitHub 上开源
全球顶级编程大牛加入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开始一步步一起来学习,如果周围有同学或者朋友想要学习的,那赶紧转发或者推荐他关注这个系列的文章,毕竟有个小伙伴一起学会更有氛围,后续除了理论我还会考虑结合实践,我不信你学不会!
Git学习总结(2)——初识 GitHub的更多相关文章
- [转]git学习------>git-rev-parse命令初识
git学习------>git-rev-parse命令初识 2017年06月13日 10:04:13 阅读数:2172 一.准备工作 第一步:在d盘git test目录下,新建工作区根目录dem ...
- 139.00.004 Git学习-远程仓库之Github
参考Github官方HelloWorld入门教程 "有了远程仓库,妈妈再也不用担心我的硬盘了."--Git点读机 本章开始介绍Git的杀手级功能之一(注意是之一,也就是后面还有之二 ...
- Git学习笔记day01 从GitHub克隆版本库
本期Git教程将会带您进入Git的世界,这是您使用分布版本控制工具Git的开端,祝您学习顺利! 步骤一 在Linux系统中下载Git 如果是Ubuntu系统,在shell中输入指令 sudo apt ...
- Git 学习之--安装配置GitHub
楼主今天学习了一下Git的使用,而且Androdi studio 下加入了Git插件,成功提交项目到自己Github个人主页 watermark/2/text/aHR0cDovL2Jsb2cuY3Nk ...
- [git 学习篇]自己在github创建一个远程服务器创库
现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举 ...
- Git学习:如何在Github的README.MD文件下添加图片
格式如下:  关于图片的绝对路径: 必须把图片上传到github的代码仓库里,再将其图片的网址复制到括号里才可以,不能够直接把图片复制到readme.md文件里面,这 ...
- git学习------>git-rev-parse命令初识
一.准备工作 第一步:在d盘git test目录下,新建工作区根目录demo,进入该目录后,执行git init创建版本库. DH207891+OuyangPeng@DH207891 MINGW32 ...
- Git学习笔记 2,GitHub常用命令
廖雪峰Git教程 莫烦Git教程 莫烦Git视频教程 文件三个状态,add之后从工作区(原始状态)到暂存区,commit之后从暂存区到版本库 工作区 暂存区 版本库 unstage stage mas ...
- Git学习笔记 1,GitHub常用命令1
廖雪峰Git教程 莫烦Git教程 莫烦Git视频教程 --------------- init > apt-get install git # 安装 > mkdir /home/yzn_g ...
- Git学习笔记与IntelliJ IDEA整合
Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:http://git-scm.com/downloads Git简要使用说明:h ...
随机推荐
- 洛谷3871 [TJOI2010]中位数 维护队列的中位数
题目描述 给定一个由N个元素组成的整数序列,现在有两种操作: 1 add a 在该序列的最后添加一个整数a,组成长度为N + 1的整数序列 2 mid 输出当前序列的中位数 中位数是指将一个序列按照从 ...
- BZOJ 4373算术天才⑨与等差数列(线段树)
题意:给你一个长度为n的序列,有m个操作,写一个程序支持以下两个操作: 1. 修改一个值 2. 给出三个数l,r,k, 询问:如果把区间[l,r]的数从小到大排序,能否形成公差为k的等差数列. n,m ...
- POJ1201Intervals(差分约束)
题意 给出数轴上的n个区间[ai,bi],每个区间都是连续的int区间. 现在要在数轴上任意取一堆元素,构成一个元素集合V 要求每个区间[ai,bi]和元素集合V的交集至少有ci不同的元素 求集合V最 ...
- Linux LVM在线扩容
环境: 虚拟化环境,SUSE Linux Enterprise Server 11sp3,直接把虚拟磁盘从100G改成150G. 现有的LVM是100G,/home 的LV需要再加50G. 步骤: f ...
- [JLOI2015]装备购买(线性基)
[JLOI2015]装备购买 题目描述 脸哥最近在玩一款神奇的游戏,这个游戏里有 nn 件装备,每件装备有 \(m\) 个属性,用向量 \(\mathbf{z_i}\)=\((a_1, \ldots ...
- 【Codeforces Round #420 (Div. 2) C】Okabe and Boxes
[题目链接]:http://codeforces.com/contest/821/problem/C [题意] 给你2*n个操作; 包括把1..n中的某一个数压入栈顶,以及把栈顶元素弹出; 保证压入和 ...
- Java基础学习总结(11)——重载与重写
首先我们来讲讲:重载(Overloading) 一.方法的重载 方法名一样,但参数不一样,这就是重载(overload). 所谓的参数不一样,主要有两点:第一是参数的个数不一样,第二是参数的类型不一样 ...
- 三 Client 如何找到正确的 Region Server
客户端在进行put.delete.get等操作的时候,它都需要数据到底存在哪个Region Server上面,这个定位的操作是通过 Connection.locateRegion方法来完成的. loc ...
- 会变得ActionBar,让你的ActionBar与众不同
话不多说先看两张图: github地址:https://github.com/Smalinuxer/android-SlideActionBar 原理什么的有时间再讲,或者自行看代码; 兴许还会补充新 ...
- Objective-C学习笔记(十)——循环语句for和do-while的使用
在OC中.除了while这样的循环方式外,还有另外for循环和do-while循环.它们在不同的业务逻辑下会有不同的作用.能够和C语言和Java对照着学习. (一)代码一: int main(int ...