是什么

官方话术:

GitLab是由GitLabInc.开发,运用MIT许可证的根据网络的Git库房办理东西,且具有wiki和issue盯梢功用。运用Git作为代码办理东西,并在此基础上搭建起来的web服务。

GitLab由乌克兰程序员DmitriyZaporozhets和ValerySizov开发,它运用Ruby言语写成。后来,一些部分用Go言语重写。截止2018年5月,该公司约有290名团队成员,以及2000多名开源贡献者。GitLab被IBM,Sony,JlichResearchCenter,NASA,Alibaba,Invincea,O’ReillyMedia,Leibniz-Rechenzentrum(LRZ),CERN,SpaceX等安排运用。

GitLab具有与Github相似的功用,能够阅读源代码,办理缺陷和注释。能够办理团队对库房的拜访,它非常易于阅读提交过的版别并供给一个文件前史库。团队成员能够运用内置的简略聊天程序(Wall)进行交流。它还供给一个代码片段搜集功用能够轻松实现代码复用。

为什么

为什么企业都是用gitlab,而不是github和gitee等呢?

当一个项目版别多了,开发人员多了,单纯的git办理仍是很多问题,一方面是开发人员权限过大,二是运维人员不太了解咱们开发上面的流程,所以想着用更好的东西来办理项目。所以想到gitlab。

CI/CD

这儿的CI/CD其实指的是继续集成(CI)和继续交给、继续布置(CD),CI便是软件工程师每天频繁地将更新代码的副本传递到共享位置的进程。一切的开发作业都在预定的时间或事件中进行集成,然后自动测验和构建作业。经过CI,开发进程中出现的过错能被及时发现,这样不只加速了整个开发周期,并且使软件工程师的作业效率更高。而CD 表示继续交给(CD)是创建高质量应用程序的第二个难题。CD是一门软件开发学科,运用技能和东西快速地交给出产阶段的代码。由于大部分交给周期都是自动化的,所以这些交给能够快速地完结。

后文咱们会详细介绍CI/CD的作业流程

权限操控和协同

在一个 GitLab 项目上一同作业的最简略办法便是赋予协作者对 git 版别库的直接 push 权限。 你能够经过项目设定的 “Members(成员)” 部分向一个项目添加写作者,并且将这个新的协作者与一个拜访级别相关(。 经过赋予一个协作者 “Developer(开发者)” 或许更高的拜访级别,这个用户就能够毫无约束地直接向版别库或许向分支进行提交。

另外一个让协作更解耦的办法便是运用兼并恳求。 它的长处在于让任何能够看到这个项目的协作者在被管控的状况下对这个项目作出贡献。 能够直接拜访的协作者能够简略的创建一个分支,向这个分支进行提交,也能够开启一个向 master 或许其他任何一个分支的兼并恳求。 对版别库没有推送权限的协作者则能够 “fork” 这个版别库,向 那个 副本进行提交,然后从那个副本开启一个到主项目的兼并恳求。 这个模型使得项目具有者完全操控着向版别库的提交,以及什么时分答应参加生疏协作者的贡献。(这有点相似 github,但现在github私有库收费)

在 GitLab 中兼并恳求和问题是一个长久评论的主要部分。 每一个兼并恳求都答应在提出改动的行进行评论(它支撑一个轻量级的代码审查),也答应对一个总体性论题进行评论。 两者都能够被分配给用户,或许安排到 milestones(里程碑) 界面。

这个部分主要聚集于在 GitLab 中与 Git 相关的特性,但是 GitLab 作为一个成熟的系统,它供给了许多其他产品来帮助你协同作业,例如项目 wiki 与系统维护东西。 GitLab 的一个长处在于,服务器设置和运转以后,你将很少需要调整配置文件或经过 SSH 连接服务器;绝大多数的办理和日常运用都能够在阅读器界面中完结。

Git Flow 作业流介绍

一个企业傍边项目,一般来说,是几个人一起进行开发的,那么如何对git分支进行办理就成了一个要点问题。

那么这儿,咱们就需要介绍一下咱们的git flow作业流程了。

咱们先从代码的运转环境来说起。代码运⾏的环境 ⼀般来说,公司团队都会有⾄少这⼏个环境:

Gitlab上手指南(二)|大多数企业为什么会使用Gitlab,Gitlab工作流是什么样的?

  • 本地开发环境: 开发⼈员⾃测的,能够是⾃⼰本地布置的静态服务器,当然也可相似是运⾏ npm server相似的环境,本地环境运⾏ 的代码能够是任何分⽀的
  • dev开发环境: 这个环境是⽤开发分⽀dev产出的代码来布置的,唯⼀的公⽤的
  • 测验&预发布环境: 这个环境是⽤开发分⽀release产出的代码来布置的,唯⼀的公⽤的
  • 线上⽣产环境: 这个环境是⽤开发分⽀master产出的代码来布置的,唯⼀的公⽤的

对应的git分支模型是这样的

Gitlab上手指南(二)|大多数企业为什么会使用Gitlab,Gitlab工作流是什么样的?

对应的分支战略是这样的

Gitlab上手指南(二)|大多数企业为什么会使用Gitlab,Gitlab工作流是什么样的?

  • master :维护分⽀,对应的便是⽣产环境的分⽀
  • release:维护分⽀,一切开发完结的分⽀会请求兼并到release分⽀,供给给测验⼈员测验
  • feature-*:功用分⽀,详细功用开发
  • dev/test-*:开发分⽀&脏分⽀,对应的是⼤家共⽤的开发环境,上⾯的代码会布置到⼀个公共的开发环境,供开发⼈ 员做⾃测,敷衍⼀些⽇常、⾮⽇常的调试
  • hotfix-*:bug紧迫修复分⽀,能够直接兼并到master,(假如release兼并了⼏个feature分⽀,正在测验的状况 下,发现需要紧迫修复的buf,紧迫修复测验结束后,能够直接兼并到master,假如兼并到release,在由 release兼并到master,那些正在测验的功用或许还不预备上线的功用就会跟着直接上线了)

作业流程介绍

Gitlab上手指南(二)|大多数企业为什么会使用Gitlab,Gitlab工作流是什么样的?

  1. 接到需求⽂档,做评定后分配个每个⼈或⼩组的功用开发,相关⼈员从master 检出功用分⽀
  2. 开发的时分除了会在本地测验,有需要还会兼并到dev分⽀,在公共的开发环境去⾃⼰做测验
  3. 因为在开发功用的期间,可能有hotfix完结兼并到master,兼并代码的时分习气merge⼀下master,防⽌冲突 等
  4. ⾃测完结之后,请求兼并到release,兼并成功后布置到测验环境后告诉测验⼈员做测验
  5. 测验经过后,release请求兼并到master,预备上线
  6. 假如测验不经过,在功用分⽀修改后从头merge
  7. 上线成功安稳后删去对应的功用分⽀,dev 兼并最新的master分⽀