训练营往期回顾:
Day Zero – 开通效率云服务 <<
Day One 之理念篇: DevOps与敏捷,用户故事地图,价值流图
Day One 之实操篇--产品规划,定制看板,生成迭代计划
今天我们来介绍百度效率云中代码托管的解决方案--iCode,今天的课程我们将介绍源代码管理工具Git, pull request和change request的区别,最后通过iCode实现代码托管,设置团队提交规则,设计基于change request的持续集成流水线;
创建你的第一个代码库
原理: 什么是源码控制?
在这里,我将从高度抽象的层面描述版本控制是做什么的,以及它对于知识工作者的工作有何关联。
在知识工作者创建内容的整个过程中,会执行一系列标准任务与步骤。这里说的知识工作者可以是处理文档的设计人员,也可能是更常见的写代码的开发人员。所有这些角色在创建新事物时都有相同的行为:创建新文件、写入内容、保存文件,然后我们对这些文件进行一系列编辑和修改,然后再次保存。这些看起来是一系列简单的步骤,然而,我们如何用图形化的方式来表现呢?
版本控制的目的是帮助你在一次次的保存时澄清何时保存的、为什么保存、哪些内容被修改,从而能够在将来的任何时间对这些修改进行评审。如果我们画一张图,来展现我们对一个文件所做的修改活动,你可能需要每次都描述清楚你对文件做了什么、为什么要对其修改、并且希望工具能够自动记录文件内容发生了那些改变。
对于单个人来说,这似乎并不是什么难事,对于单个文件,看起来就是直线向前的。但是,当我们说到协作场景时,版本控制才真正发出闪耀的光芒:你和其他团队成员试图做相同的事情,甚至在同一个文件上。当你这样做时,你所需要的能力就不仅仅是为单个人提供单个文件的简单版本历史了!你必须要能够持续跟踪谁做了修改、什么时候做了修改、为什么修改,并将所有人的操作合并在一起。成熟的版本控制系统能够很好地处理你和你的团队成员对这些文件所做的相互交错的操作,并统一合并成为最终状态。
Git
Git是一种分布式现代版本控制系统,实现了一种快速的版本控制。它非常轻量化而且速度极快。同时,对任何类型的知识工作者来说,Git都很容易使用。
Git基本流程
基本的 Git 工作流程如下:
1. 在工作目录中修改文件。
2. 暂存文件,将文件的快照放入暂存区域。
3. 提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。
为了方便你后续的学习,记住下面这些有关Git的概念。Git 有三种状态,你的文件可能处于其中之一:已提交(committed)、已修改(modified)和已暂存(staged)。已提交表示数据已经安全的保存在本地数据库中。已修改表示修改了文件,但还没保存到数据库中。 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
由此引入 Git 项目的三个工作区域的概念:Git 仓库、工作目录以及暂存区域。
git仓库
代码仓库是Git用来保存项目元数据和对象数据库的地方。这是 Git 中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。
工作目录
工作目录是对项目的某个版本独立提取出来的内容。 这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。
暂存区
暂存区域是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中。有时候也被称作“索引”,不过一般说法还是叫暂存区域。
远程仓库
为了能在任意 Git 项目上协作,你需要知道如何管理自己的远程仓库。 远程仓库是指托管在因特网或其他网络中的你的项目的版本库。你可以有好几个远程仓库,通常有些仓库对你只读,有些则可以读写。 与他人协作涉及管理远程仓库以及根据需要推送或拉取数据。 管理远程仓库包括了解如何添加远程仓库、移除无效的远程仓库、管理不同的远程分支并定义它们是否被跟踪等等。
分支
几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。
实操部分: 新建代码库
Step 1:进入iCode
从效率云首页点击“进入iCode”按钮。
Step 2:点击“新建代码库”按钮
Step 3:输入目录名和代码库名称
为了方便教学,在这里我们统一目录名:iCoder
代码库名:JavaDemo
Step 4:设置代码库类型,这里我们提供了两种权限,一种为代码库成员可见,一种是整个企业主账号内的成员可见。我们在此选择“公开”;
Step 5:输入代码库描述
Step 6:点击确定按钮完成创建并进入代码库
Step 7:设置HTTP密码,使用Git连接到iCode代码库时,如需输入密码,请使用本步骤设置的密码。设置密码的入口在iCode界面点击右上角头像--账号设置。
实操部分: 添加代码库成员并分配权限
进入成员设置界面,添加您当前主账号下的其他子账号,使他拥有此代码库权限;为了后续设置代码评审人,建议您通过多账户管理添加一个icode子账号;
为iCode账号添加只读权限,我们不需要它提代码,帮我们做Code Review就好了
实操部分: 安装Git
Step 1:检查是否已经安装Git,打开你本地电脑上的控制台,输入git --version。检查是否输出当前版本信息,如果当前已经安装Git,请直接进入Step 3。
Step 2:下载并安装Git,如果您当前没有安装Git在浏览器中访问Git官网下载链接:https://git-scm.com/downloads
Step 3:再次检查Git版本是否已经安装
实操: 将范例代码导入到代码库
Step 1:下载代码库,下面我们将尝试从springboot在github上的开源示例上传到icode中;
1.首先在创建开发目录,执行命令mkdir icode_starter && cd icode_starter。
2.之后下载范例代码到本地,执行命令git clonehttps://github.com/spring-guides/gs-spring-boot.git。
Step 2:将下载好的范例代码导入到icode代码仓库
1. 进入代码仓库首页,复制场景2脚本
2. 将第一条脚本改为cd gs-spring-boot/,如下:
执行脚本,并刷新iCode代码库列表页面,看刚才的代码是否已经显示在页面上
恭喜你,你已经完成了代码库的准备工作!
下一节课我们将重点介绍,持续集成中的质量内建,pull request和change request等相关知识;当然,还有在效率云中如何实现