GitHub 到底为啥这么受欢迎?我们为你整理了一份使用攻略

导读:GitHub,全世界开发者的安全空间,在这里,你可以分享你的代码为大家所用,也可以和全世界的开发者一起共建完善你的代码。在这里,你可以学习借鉴前辈的经验快速提升技能,也可以更好地展示自己的学习成果为未来发展撰写自己的名片。下面的视频就由网红小哥 Siraj 为大家讲解 Git 协议是如何工作的,并教你建立自己的代码仓库以及用社交媒体提升你的 GitHub 代码。

作者:Siraj Raval

翻译:雷锋字幕组 于志鹏 朱海振

来源:雷锋网

视频内容

1. 什么是 Git 协议

你可能会发现 GitHub 有个很鲜明的特色,它允许开发者通过一个共享界面实现合作,在这里你可以以你认为好的方式修改他人的开放代码,也可以邀请他人来协助你完善你的。这种合作就像特斯拉公司要发布一辆新车型,他们会用一年时间来请负责每个部分的小组进行设计、协调并与其它小组设计的新特征保持同步,从而实现设计的最优化。这是一个充分发挥民主的过程。

那你可能会疑惑,是什么驱使世界各地的开发者互相协作,并且一旦发生问题,是否有可能修改或还原呢?

答案很简单,因为使用了 Git 协议存储代码库。

十几年前,大名鼎鼎的程序员 Linus Torvalds 正忙于构建一个操作系统,并且与其它开发者一起不断修改代码,因此他需要一个方式去追踪代码是如何随着时间更改的,这样一旦发生问题可以很轻易的回到之前的版本。

一般来说我们会不断地保存副本并重命名,我想你写论文也碰见过这种情况:一稿、二稿…绝不修改版本…再次修改版本…这简直是噩梦,所以 Linus 写了 Git 协议,用来提供项目最新的注释合集和按时间排序的代码更改历史。直到现在,Git 协议几乎是每一个现代开发工作流的核心。

2. 如何理解 Git 协议中的指令

Git 协议中有大量指令,当你第一次试着去理解的时候它的结构可能令人费解。不过我们还是以特斯拉公司为例。

我们需要研发新车型,事实上在给定的任意时间我们存在四个版本的设计:

  1. 实时版本,也就是消费者熟悉的在售现行版本;
  2. 计划中明年版本,只要所有小组同意,这个版本将成为新的实时版本,它代表着远程数据库,储存了我们最新的优化后的设计版本;
  3. 最新版本充分考虑了其他小组的建议,但还未向其他小组展示并获得许可,它代表本地库;
  4. 开发中版本,它需要进一步的内测和审核,这是一个缓存区。

每个阶段都对应着不同层次的贡献,对代码来说也是一样,我们的代码在落地前必须经历四个阶段,每个阶段都进一步降低了与其它小组相冲突的风险。

Git 协议中还有一个声明,表示我们完成了一个完整的设计并且我们对它十分满意,Git 协议中的提交意味着即使还需要测试和审核,我们仍然对自己的设计充满信息,并且已经对它进行了所有标准化的测试。

3. Git 协议如何运作

一旦我们准备好将我们的设计展示给其他人,就可以将我们的设计从本地库复制到远程存储库中,在 Git 协议中我们可以使用 push 指令,过程存储库保存在云端,本地库则保存在我们的电脑上。一旦所有人都表示满意,我们就可以将它部署到我们的网站或手机应用上。

在生产中,这实际上不是一个 Git 指令而是代表着从实际版本到生产的过程。

事实上我们可能为每个新版本都建立了存储库,但因为他们都很多共同点,我们可以只为每个版本建立分支,分支可以让我们基于相同的代码库保持多个版本。如果使用后发现在现有版本中加入某个特征会更好,我们就可以用 merge 指令来整合两个分支。

加入有人推送了一个新的特征或代码到远程存储库中,我们可以通过 Git 协议中的 pull 指令提取新特征到我们的本地库。如果这个新特征与我们的存储库冲突,我们可以让代码恢复到改变前的状态,或者调整推送一个更新的版本到远程存储库。

Git 协议可以帮我们追踪并快速定位冲突,使得优化和修复都更加简单。

4. 如何使用 Github

我们已经知道 Github 使用了 Git 协议,我们继续建立自己的存储库,在完成注册后然后将它存在 Github 上,这里相当于一个开发者的社交网络平台,我们可以下载最新的 Git 协议。

我们通过在 Github.com 上使用 git config 指令确定自己的用户名和邮箱,然后就可以通过在命令行使用 git init 指令建立自己的本地 Git 库。可以新建一个代码文件夹,并且通过直接把更改添加到缓存区来将其添加到 Git。

每一个开发者只负责自己的分支,我们可以在本地匹配他们,然后提交方案,不同的提交来自于不同的分支,所有分支逐渐导向 master 节点,这也是为什么 Git 会呈现树形结构。

GitHub 是一个社交网络平台,你可以关注并追踪其他开发者的最新代码,关注你的开发者越多,他们越有可能提升你的开源项目。而良好的文件记录极有助于让其他开发者关注你的代码。所以你还在等什么?快加入 GitHub 吧!

来源:油管 Artificial Intelligence Education 专栏

原作者:Siraj Raval

原标题:How to Use GitHub

视频原址:

https://www.youtube.com/watch?v=Loav1kbA640

原文发布于微信公众号 - 大数据(hzdashuju)

原文发表时间:2018-08-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏互扯程序

IaaS,PaaS和SaaS,QPS,RT和TPS,PV,UV和IP到底是什么意思?

今天我们来讲讲什么是云服务,云计算的三种服务模式有哪三种,我们经常评估服务的性能指标都有哪些,分别是什么意思,平时“那些人”说的QPS是什么,TP是什么,日活又...

2313
来自专栏网络

学web前端开发写给新手的建议,超实用!

如今我们使用的互联网,客户端与服务器端的交互无时无刻不在发生。比如我们在浏览器打开网页,浏览器就是客户端,将网页数据发过来的也就是服务器。其实服务器,并没有什么...

2359
来自专栏Java架构

干货 | 携程图片服务架构一、服务架构二、 小结

2325
来自专栏IT大咖说

MySQL 高扩展架构构建百万在线系统实践

2013
来自专栏北京马哥教育

关于泰捷商城项目与如何做一个高可用的网站

hi 各位, 上两周一直都在做泰捷商城这个项目。这个项目的目的就是卖泰捷出品的WEBOX。这是我第一次做有关电子商务的网站。各种头绪。其实原始需求很简单,只卖一...

39012
来自专栏架构师之旅

Mysql在大型网站的应用架构演变

写在最前: 本文主要描述在网站的不同的并发访问量级下,Mysql架构的演变 可扩展性 架构的可扩展性往往和并发是息息相关,没有并发的增长,也就没有必要做高可扩展...

1928
来自专栏腾讯云技术沙龙

董朝:打造云存储服务——移动端数据存储与分发

先做一个简单的自我介绍,2011年我毕业以后,一直从事IOS的开发,目前为止大概有七年的工作经验,前四年的时间主要在做APP里开发,之后三年主要做SDK相关的工...

64515
来自专栏Python专栏

不要在问Linux优化从何入手了,好好看看

作为一个程序员,性能优化是无法避开的事情,不管是桌面应用还是web应用,不管是前端还是后端,不管是单点应用还是分布式系统,并且性能优化也是软件系统中最有挑战的工...

1714
来自专栏FreeBuf

2016 黑客必备的Android应用都有哪些?

免责声明:本人所发布的此份清单仅供学习之用。我们不支持读者利用其中的任何工具进行任何不道德的恶意攻击行为。 ? 根据业界的一系列评测以及亲身经验,我们整理出了...

2198
来自专栏程序你好

微服务(Microservices)集成原则

在微服务的诸多优势中,最重要的动机是业务单位的规模和自主权。然而,我们仍然需要创建一个对最终用户有意义的集成体验。在为微服务之间的交互开发策略时,记住这两个目标...

1473

扫码关注云+社区

领取腾讯云代金券