「 Git 基础入门 」 由浅入深,轻松上手Git
整理 | 猿胖子
出品 | 猿武场(ID:apesarena)
Gitlab 是何物?
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来 的web服务。
它提供了许多其他产品来帮助你协同工作,例如项目工作流控制、wiki、CI/CD等扩展。GitLab 中合并请求和问题是一个长久讨论的主要部分。每一个合并请求都允许在提出改变的行进行讨 论(它支持一个轻量级的代码审查),也允许对一个总体性话题进行讨论。两者都可以被分配给用户, 或者组织到 milestones(里程碑) 界面。

需求评审及里程碑管理
使用 GitLab Issue 去登记新增的功能需求,或者目前系统存在的缺陷等。通过结合 Board 就更加 直观的了解到目前项目进度。

打标签(Lable)
标签可以根据不同 Issue 进行分类,定义该 Issue 是否 Bug 还是新增的功能,或者是目前该 Issue 进行的状态等等。

里程碑(Milestone)
里程碑表示一个迭代周期或者一个版本的目标,通常将 Issue 纳入表示需要处理完成后就达到了里程碑。

项目管理看板
主要用途是查看目前 Issue 的处理状态。Open 初始状态,可能未经验证是否可行或者真实性,ToDo待办阶段,已经初步验证,整理成任务分配到开发,Doing 处理阶段,已经正在进行中的任务 Close 最终状态,可能是已经完成了或者取消。

工作流看板
主要用途是查看目前 Issue 的研发状态。
Issue 初始阶段,将问题 Issue 及分配到Milestone;
Plan 计划阶段,产品团队及技术负责人在验证需求及讨论需求阶段;
Code 开发阶段,开发团队已有明确的细化任务进行逐个开发;
Testing 测试阶段,测试团队将开发完成的功能进行测试;
Review 评审阶段,最终用户和产品团队参与上线前的确认;
Staging 部署阶段,运维团队将应用上线到线上环境;
Production 生产阶段,统计已经成功发布的Issue,或者是整个流程所花费的时间。

CodeReview 代码审查
Code Review 的目的是提高代码质量,减少开发bug。
Gitlab提供将源分支(Source branch)Push 到远端,然后在GitLab指定目标分支(Target branch)发起Merge Request,对目标分支(Target branch)拥有merge权限的用户执行Merge操作,完成合并。在设置好权限后开发人员发起merge request后,由有merge权限用户做code review,通过后执行merge操作。

Gitlab wiki
通过Gitlab的wiki功能,对项目文档管理提供了很好的解决方案。wiki就是利用git来进行文档管理 的一种方法, 就好像我们用git管理代码一样。wiki的使用很简单, 登陆到gitlab, 进入到wiki界面一看便知, 侧边栏可以查看已经创建的文档, 进入文档后可以浏览, 也可以进行编辑, 编辑完可以直接提交, 当然也可 以写提交日志, 非常简单, 这里就不过多介绍了。
Gitlab的编辑器支持markdown,无论是写文档还是IDE中, 都能方便输入。
Gitlab CI/CD
GitLab CI/CD 是一个内置在GitLab中的工具,用于通过持续方法进行软件开发。软件开发的持续方法基于自动执行脚本,以最大程度地减少在开发应用程序时引入错误的机会。从开发 新代码到部署新代码,他们几乎不需要人工干预,甚至根本不需要干预。它涉及到在每次小的迭代中就不断地构建、测试和部署代码更改,从而减少了基于已经存在bug或失败 的先前版本开发新代码的机会。
Continuous Integration(持续集成)
持续集成是将小的代码块推送到Git仓库中托管的应用程序代码库中,并且每次推送时,都要运行一系列脚本来构建、测试和验证代码更改,然后再将其合并到主分支中。举个例子:假设开发某个项目,其代码存储在GitLab的Git仓库中。开发人员每天都要多次推送代码更改。
对于每次向仓库的推送,你都可以创建一组脚本来自动构建和测试你的应用程序,从而减少了向应用程序引入错误的机会。
对于提交给应用程序(甚至是开发分支)的每项更改,它都会自动连续进行构建和测试,以确保所引入的更改通过你为应用程序建立的所有测试,准则和代码合规性标准。
Continuous Delivery(持续交付)
持续交付是超越持续集成的更进一步的操作。应用程序不仅会在推送到代码库的每次代码更改时进行构建和测试,而且,尽管部署是 手动触发的,但作为一个附加步骤,它也可以连续部署。
此方法可确保自动检查代码,但需要人工干预才能从策略上手动触发以必输此次 变更。
Continuous Deployment(持续部署)
与持续交付类似,但不同之处在于,无需将其手动部署,而是将其设置为自动部署。完全不需要人工干预即可部署你的应用程序。
尤其互联网开发过程中,在配合Docker或者k8s等自动部署方式,可以从本地一次提交完成线上程序的不停机热更新。

相关下载资料
《Git 中文操作手册》
网址:https://git-scm.com/ (建议自行官网下载)
SourceTree下载
网址:https://www.sourcetreeapp.com/ ( MacOS Windows )
Git 安装下载
网址:https://git-scm.com/
猿武场小商店限时福利:GitHub 定制款 T恤
关注阅读本系列文章随机抽取送出 GitHub 定制款T恤
-end-
代码改变世界




