初识Github

GitHub 是程序员的必备技能

1.什么是Github?

确切的说 GitHub 是一家公司,位于旧金山,由 Chris Wanstrath, PJ Hyett 与

Tom Preston-Werner 三位开发者在2008年4月创办。这是它的 Logo:

2008年4月10日,GitHub正式成立,地址:How people build software · GitHub ,

主要提供基于git的版本托管服务。一经上线,它的发展速度惊为天人,截止目前,GitHub 已经发展成全球最大的开(同)源(性)社区。

2.Github和Git的关系?

首先需要知道的一点是:

Git 是一款免费、开源的分布式版本控制系统,他是著名的 Linux 发明者 Linus Torvalds 开发的。说到版本控制系统,估计很多人都用过 SVN ,只不过 Git 是新时代的产物,如果你还在用 SVN 来管理你的代码,那就真的有些落伍了。不管是学习 GitHub ,还是以后想从事编程行业,Git 都可以算是必备技能了,所以从现在开始建议你先去学习熟悉下 Git 。

而 GitHub 上面说了,主要提供基于 git 的版本托管服务。也就是说现在 GitHub 上托管的所有项目代码都是基于 Git 来进行版本控制的,所以 Git 只是 GitHub 上用来管理项目的一个工具而已,GitHub 的功能可远不止于此!

3.GitHub 的影响力

上面我说了 GitHub 现在毫无疑问基本是全球最大的开源社区了,这样说你们可能认为未免有点浮夸,且听我一一举证:

全球顶级科技公司纷纷加入 GitHub ,并贡献他们自己的项目代码

  • Google: https://github.com/google
  • 苹果: https://github.com/apple
  • Facebook: https://github.com/facebook
  • Twitter:https://github.com/twitter
  • 微软:https://github.com/microsoft
  • Square:https://github.com/square
  • 阿里:https://github.com/alibaba

全球顶级开源项目都优先选择在 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 等都是出自他之手!

4.GitHub 有什么用

  • 学习优秀的开源项目

  开源社区一直有一句流行的话叫「不要重复发明轮子」,某种意义上正是因为开源社区的贡献,我们的软件开发才能变得越来越容易,越来越快速。试   想你在做项目时,如果每一模块都要自己去写,如网络库、图片加载库、ORM库等等,自己写的好不好是一回事,时间与资源是很大的成本。对于大公   司可能会有人力与资源去发明一套自己的轮子,但是对于大部分互联网创业公司来说时间就是一切。而且你在使用开源项目的过程也可以学习他们优秀   的设计思想、实现方式,这是最好的学习资料,也是一份提升自己能力的绝佳方式!

  • 多人协作

  如果你想发起一个项目,比如翻译一份不错的英文文档,觉得一个人的精力不够,所以你需要更多的人参与进来,这时候 GitHub 是你的最佳选择,感兴  趣的人可以参与进来,利用业余时间对这个项目做贡献,然后可以互相审核、合并,简直不要太棒!

  • 搭建博客、个人网站或者公司官网

  这个就不用多说了,现在越来越多的博客都是基于 GitHub Pages 来搭建的了,你可以随心所欲的定制自己的样式,可以给你博客买个逼格高的域名,再  也不用忍受各大博客网站的约束与各式各样的广告了!

  • 写作

  如果你喜欢写作,而且基于 Markdown, 并准备出版书籍,那么推荐你用 Gitbook ,技术写作人的最爱!

  • 个人简历

  如果你有一个活跃的 GitHub 账号,上面有自己不错的开源项目,还经常给别的开源项目提问题,push 代码,那么你找工作将是一个非常大的优势,现在  程序员的招聘很多公司都很看中你 GitHub 账号,某种意义上 GitHub 就可以算是你的简历了。而且不仅国内,很多国外的科技公司都会通过 GitHub 来寻  找优秀的人才,比如我甚至通过 GitHub 收到过 Facebook 的邀请邮件!

  • 其他

  当然 GitHub 能做的还远不止这些,我见过很多在 GitHub 搞的一些有意思的项目,有找男朋友的,甚至还有利用 GitHub 的 commit 丧心病狂的秀恩爱   的,没错,那个丧心病狂的人就是我,如果你前段日子关注了我的 GitHub ,那么能看到这么一个壮观的景象:

加入Github

1.注册 GitHub

先去 GitHub 官网「How people build software · GitHub」注册「Sign Up」个账号,注册页面如下:

这个应该没啥说的,需要填用户名、邮箱、密码,值得一提的用户名请不要那么随便,最好取的这个名字就是你以后常用的用户名了,也强烈建议你各大社交账号都用一样的用户名,这样识别度较高,比如我的博客域名、GitHub、知乎等其他社交账号 ID 都是 stormzhang ,微博是因为被占用了,无奈换了个id,而且这个用户名以后在 GitHub 搭建博客的时候默认给你生成的博客地址就是 http://username.github.io ,所以给自己取个好点的用户名吧。

填好用户名、邮箱、密码紧接着到这一步:

这个是什么意思呢?GitHub 有两种,一种是公开,这种是免费的,就是你创建的项目是开放的,所有人都能看得到;另一种是私有,这种是收费的,这种一般是很多企业在使用 GitHub 的私有仓库在托管自己的项目,这也是 GitHub 的一种盈利模式对于个人你就直接默认选择公开的就行了。
2.认识Github
注册成功之后你会到 GitHub 的主页面来:

导航栏,从左到右依次是 GitHub 主页按钮、搜索框、PR、Issues、Gist(这些概念后面会讲的)、消息提醒、创建项目按钮、我的账号相关。

讨论区,这部分你可以理解成微博,就是你关注的一些人的活动会出现在这里,比如如果你们关注我了,那么以后我 star、fork 了某些项目就会出现在你的时间线里。 ^_^ 因为是新创建的Github,所以空旷了些

我的项目,这部分就不用说了,如果你创建了项目,就里就可以快捷访问。

3.设置你的Github

如果你也是新注册的 GitHub 账号,是不是觉得很简陋?虽然我们还没有多少自己的项目,但是第一步起码要先完善自己的信息,点击如下的 Settings 菜单:

到设置页面来设置一些基本信息:

像头像、Name 建议要设置一个常用的,这两个很有识别性,公开的邮箱也要设置一个,这样那些企业啊、猎头啊就通过这个公开邮箱去联系你,友情提醒:别在 GitHub 把自己的 QQ 邮箱放上去,不显得太 low 了么?没有 gmail 邮箱,起码也得注册个 foxmail、163 邮箱之类的吧。

4. GitHub 基本概念

上面认识了 GitHub 的基本面貌之后,你需要了解一些 GitHub 的基本概念,这些概念是你经常会接触并遇到的。

  • Repository

  仓库的意思,即你的项目,你想在 GitHub 上开源一个项目,那就必须要新建一个 Repository ,如果你开源的项目多了,你就拥有了多个 Repositories 。

  • Issue

  问题的意思,举个例子,就是你开源了一个项目,别人发现你的项目中有bug,或者哪些地方做的不够好,他就可以给你提个 Issue ,即问题,提的问题  多了,也就是 Issues ,然后你看到了这些问题就可以去逐个修复,修复ok了就可以一个个的 Close 掉。

  • Star

  这个好理解,就是给项目点赞,但是在 GitHub 上的点赞远比微博、知乎点赞难的多,如果你有一个项目获得100个star都算很不容易了!

  • Fork

  这个不好翻译,如果实在要翻译我把他翻译成分叉,什么意思呢?你开源了一个项目,别人想在你这个项目的基础上做些改进,然后应用到自己的项目   中,这个时候他就可以 Fork 你的项目,这个时候他的 GitHub 主页上就多了一个项目,只不过这个项目是基于你的项目基础(本质上是在原有项目的基   础上  新建了一个分支,分支的概念后面会在讲解Git的时候说到),他就可以随心所欲的去改进,但是丝毫不会影响原有项目的代码与结构。

  • Pull Request

  发起请求,这个其实是基于 Fork 的,还是上面那个例子,如果别人在你基础上做了改进,后来觉得改进的很不错,应该要把这些改进让更多的人收益,  于是就想把自己的改进合并到原有项目里,这个时候他就可以发起一个 Pull Request(简称PR) ,原有项目创建人就可以收到这个请求,这个时候他会  仔细review你的代码,并且测试觉得OK了,就会接受你的PR,这个时候你做的改进原有项目就会拥有了。

  • Watch

  这个也好理解就是观察,如果你 Watch 了某个项目,那么以后只要这个项目有任何更新,你都会第一时间收到关于这个项目的通知提醒。

  • Gist

  有些时候你没有项目可以开源,只是单纯的想分享一些代码片段,那这个时候 Gist 就派上用场了!

参考自  简书stormzhang大佬    链接:http://www.jianshu.com/p/d9f9bba4da0f

转载于:https://www.cnblogs.com/yoke/p/7719780.html

什么是Github?相关推荐

  1. Github配置(git+vscode+python+jupyter)

    ①下载git 打开 git bash 工具的用户名和密码存储 $ git config --global user.name "Your Name" $ git config -- ...

  2. GitHub 中 Merge pull request 的 3 中选项说明

    Merge pull request 提供了 3 种 merge 方法: Create a merge commit:GitHub 的底层操作是 git merge --no-ff.feature 分 ...

  3. cannot find package “github.com/json-iterator/go“cannot find package “github.com/modern-go/reflect2“

    1. 问题现象 ../github.com/coreos/etcd/client/json.go:18:2: cannot find package "github.com/json-ite ...

  4. 知名高校共享课程资源GitHub地址

    文章目录 浙江大学 上海交大 北京大学 中科大 清华大学 浙江大学 https://github.com/QSCTech/zju-icicles 上海交大 https://github.com/Coo ...

  5. github下载源码也用命令进行安装包的联系

    2.下载安装 git clone https://github.com/Parsely/pykafka.git 然后将下载下来的pykafka文件夹下的pykafka文件(pykafka的库文件)放到 ...

  6. 快速访问github镜像 wiki镜像重点_github问题小结

    20220331 https://mp.weixin.qq.com/s/7ZFcD9BMB5WQnDAqZUgELg 高效的搜索github 20210821 https://zgc261.com/w ...

  7. github下载慢,轻松提速教程

    20210818 idm 可以快速下载github 获取github的IP地址 访问:https://www.ipaddress.com/ 网址 依次获取以下三个网址的IP github.com gi ...

  8. GitHub无法显示图片问题解决

    在C:\Windows\System32\drivers\etc下的hosts文件后面添: # GitHub Start 192.30.253.112 github.com 192.30.253.11 ...

  9. GitHub上YOLOv5开源代码的训练数据定义

    GitHub上YOLOv5开源代码的训练数据定义 代码地址:https://github.com/ultralytics/YOLOv5 训练数据定义地址:https://github.com/ultr ...

  10. GitHub上开源的YOLOv5

    GitHub上开源的YOLOv5 代码地址:https://github.com/ultralytics/YOLOv5 该存储库代表Ultralytics对未来的对象检测方法的开源研究,并结合了我们在 ...

最新文章

  1. Symfony3.0 实践教程 (三) 安装与配置Symfony
  2. java SpringWeb如何实现打印日志
  3. mongodb索引--1亿条记录的查询从55.7秒到毫秒级别补充版
  4. 问题排查:vue项目刷新页面加载了500多个请求?
  5. dvd清洗碟效果好吗_用什么清洗抽油烟机效果比较好?有哪些注意事项?
  6. redis stream java消息队列_Redis 异步消息队列与延时队列
  7. WiFi 扫描处理过程
  8. 不知道怎么开发VR游戏?Unity5.3官方VR教程重磅登场-系列3 VR中的交互方式
  9. Arch Linux 安装 Anbox
  10. c语言 结构体 ppt,第8章C语言的结构体和共同体.ppt
  11. 完全使用gnu linux工作
  12. 三级无刷交流发电机matlab模型,三级无刷交流发电机调压系统的建模及其仿真分析...
  13. HaploMerger2: 从高杂合二倍体基因组组装中重建单倍型
  14. WWDC 2022:iPad上开发App不再是梦?新版Playgrounds来袭!
  15. C语言 五种基本的算术运算符
  16. HCNP路由交换学习指南(第一章)学习笔记
  17. 有关一个公用的BPL的问题
  18. 金成股份冲刺上交所:年营收5.5亿 姬蕾姐弟控制98%股权
  19. 箱涵式多普勒流量计功能特点有哪些?
  20. XP系统关机提示“你可以安全地关机了”的解决

热门文章

  1. GET请求与POST请求的区别
  2. MySql如何使用索引(二)
  3. ThinkPHP链接 PgSQL
  4. eclipse字体颜色设置
  5. nginx 各种配置
  6. 微信公众平台服务框架
  7. 答题获得思科T-shirt
  8. 差分进化算法原理及matlab代码实现
  9. 使用MATLAB分析处理csv数据
  10. 电子计算机电缆用引流线,本质安全防爆电路用仪表计算机电缆