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 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

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

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

2098
来自专栏互扯程序

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

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

1593
来自专栏福利活动清单

热卖云产品3折起

1425
来自专栏PPV课数据科学社区

【数据业务】几招教你如何在R中获取数据进行分析

【IT168 编译】本文是《R编程语言》中一个系列的第二部分。在第一部分中,我们探索如何使用R语言进行数据可视化。第二部分将探讨如何在R语言中获取数据并进行分析...

3355
来自专栏云计算

使用Apprenda和R分析应用程序工作负载数据

在权限范围内运行的访客应用程序的知识是平台即服务(PaaS)可以利用的最重要的数据来源之一。一个PaaS应该知道(译注:原文为know,此处应指可以获取并处理)...

2216
来自专栏AI研习社

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

GitHub,全世界开发者的安全空间,在这里,你可以分享你的代码为大家所用,也可以和全世界的开发者一起共建完善你的代码。在这里,你可以学习借鉴前辈的经验快速提升...

942
来自专栏网络

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

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

2269
来自专栏SAP最佳业务实践

SAP最佳业务实践:ETO–项目装配(240)-14开始生产

CJ20N开始生产 image.png 在此步骤中审批 WBS 要素生产。 角色项目经理 后勤®项目系统®项目®项目构造器 1. 在工作清单中选择相关项目 (...

3566
来自专栏Java架构

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

2005
来自专栏IT大咖说

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

1933

扫码关注云+社区