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

这里是,油管 Artificial Intelligence Education 专栏,原作者 Siraj Raval 授权 AI 研习社编译。 原标题:How to Use GitHub 翻译 | 于志鹏 朱海振 校对| 余杭 整理 | MY

视频内容

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

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 吧!

视频原址:

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

原文发布于微信公众号 - AI研习社(okweiwu)

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT大咖说

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

2003
来自专栏杨建荣的学习笔记

浅谈zabbix和Grid control (r6笔记第25天)

在IT行业始终在进行着开源和商业的竞争而且双方火力都不差,开源的受众更多是中小企业,免费开源而且用户基数庞大,商业的用户都是一些大中型企业,求稳求成熟的服务。 ...

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

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

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

64215
来自专栏带你撸出一手好代码

如何正确使用缓存技术

缓存技术是用来提升程序运行性能的常见手段,君不见, 阿里巴巴、新浪微博、美团网等互联网龙头企业都是用缓存技术来提升自己家网站的性能。然而,任何事物都有两面性, ...

3816
来自专栏腾讯移动品质中心TMQ的专栏

利用线上数据提升移动app质量

1 线上数据测试模型 1.1背景 随着移动互联网的发展,移动app质量要求越来越高,传统行业质量的保证方式是测试人员在app开发过程中进行阶段性的测试,这种测...

29510
来自专栏小巫技术博客

Git 工作流的一些经验分享

1762
来自专栏Rainbond开源「容器云平台」

好雨云资深架构师祁世垚参加Qcon演讲,现场反响热烈

1314
来自专栏华章科技

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

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

1554
来自专栏IT大咖说

一文通晓私有云构建之道

摘要 服务化在云计算中是非常重要的部分,所有组件以服务的方式去提供,而很多企业的数据库都还在构建当中。今天聊的就是私有云数据库构建的过程。如果大家有这方面的打算...

3716
来自专栏云计算

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

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

2316

扫码关注云+社区

领取腾讯云代金券