实战 | git工作流与团队协作方式

一、git协作方式

1. git的工作流

目前项目使用的是git来进行项目管理(需要熟悉git的工作流)、git的团队协作流程

1.1 分支管理

目前项目参考的是这个模型

实战 | git工作流与团队协作方式

  1. master:受保护,负责分支的版本控制,3.0.0、3.0.1、3.1.0、3.2.0、…
  2. release:目前还没有,主要用于线上环境,分出一个release的分支(介于dev与master中间),作为临时处理
  3. dev:开发分支,也是团队协作中主要会用到的分支,代码提交到dev分支,负责代码提交、拉取、审查、合并…
  4. feature:成员分支,每个开发者会建立一个feature,类似feature/xxx,作为个人开发的分支,用于个人本地代码的提交、拉取仓库代码、合并本地代码,所以新加成员时,需要创建一个个人的feature分支
    实战 | git工作流与团队协作方式

1.2 代码提交

个人git的代码提交

  1. 首先,需要先将dev的代码merge dev到feature
  2. 再通过feature进行commit
  3. 并push本地代码到仓库
  4. 在gitlab的管理页面进行代码合并的申请
  5. 等待团队成员review代码,进行合并
    实战 | git工作流与团队协作方式

1.3 代码审查

审查方式有两种:

  1. 如果团队控制在6人以内,可以由2个能力比较强的、业务熟悉的来统一作为代码reviewer;
  2. 如果团队人员比较多,可以任务级别的两两互相reviewer

1.4 代码合并

具有主要开发者权限,可以进行最后的合并操作,feature的分支合并到dev分支,dev分支合并到release或master分支;

建议:需要添加标签、里程碑!方便后面的成员管理。


2. gitlab-issue与wiki

进行团队协作(可用jira代替)

2.1 执行计划

实战 | git工作流与团队协作方式

issue的作用表现在方方面面,它可以是用于记录一些公告、制定OKR、项目讨论的内容、发布任务(日常开发、探究性、文档、部署)、重要的技术积累、一些想法。

目前团队中主要用于:

  1. OKR-制定周目标
  2. 发布任务(由团队成员认领)
  3. 发布公告-记录一些关键的技术点

2.2. 里程碑

这也是OKR的一部分,用于标记目前代码提交、任务发布过程中所属阶段,确定目前处于什么阶段

2.3. 标签/标记

这个功能很牛,如果运用得好,就是神器。

目前团队中主要用于:

  1. 标记优先级(优先级1、2、3)
  2. 标记参与的成员(可以作为每个月查看成员认领了什么任务,完成了什么)
  3. 标记任务状态(正在做、待认领、已完成,方便认领任务)
  4. 标记任务类型(文档、部署、公告)

参考资料: 基于GitLab的Code Review教程