雷锋网按:这里是,油管 Artificial Intelligence Education 专栏,原作者 Siraj Raval 授权雷锋字幕组编译。
原标题: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 吧!
视频原址:?v=Loav1kbA640
雷锋网雷锋网