一、git协作方式
1. git的工作流
目前项目使用的是git来进行项目管理(需要熟悉git的工作流)、git的团队协作流程
1.1 分支管理
目前项目参考的是这个模型
- master:受保护,负责分支的版本控制,3.0.0、3.0.1、3.1.0、3.2.0、…
- release:目前还没有,主要用于线上环境,分出一个release的分支(介于dev与master中间),作为临时处理
- dev:开发分支,也是团队协作中主要会用到的分支,代码提交到dev分支,负责代码提交、拉取、审查、合并…
- feature:成员分支,每个开发者会建立一个feature,类似feature/xxx,作为个人开发的分支,用于个人本地代码的提交、拉取仓库代码、合并本地代码,所以新加成员时,需要创建一个个人的feature分支
1.2 代码提交
个人git的代码提交
- 首先,需要先将dev的代码merge dev到feature
- 再通过feature进行commit
- 并push本地代码到仓库
- 在gitlab的管理页面进行代码合并的申请
- 等待团队成员review代码,进行合并
1.3 代码审查
审查方式有两种:
- 如果团队控制在6人以内,可以由2个能力比较强的、业务熟悉的来统一作为代码reviewer;
- 如果团队人员比较多,可以任务级别的两两互相reviewer
1.4 代码合并
具有主要开发者权限,可以进行最后的合并操作,feature的分支合并到dev分支,dev分支合并到release或master分支;
建议:需要添加标签、里程碑!方便后面的成员管理。
2. gitlab-issue与wiki
进行团队协作(可用jira代替)
2.1 执行计划
issue的作用表现在方方面面,它可以是用于记录一些公告、制定OKR、项目讨论的内容、发布任务(日常开发、探究性、文档、部署)、重要的技术积累、一些想法。
目前团队中主要用于:
- OKR-制定周目标
- 发布任务(由团队成员认领)
- 发布公告-记录一些关键的技术点
2.2. 里程碑
这也是OKR的一部分,用于标记目前代码提交、任务发布过程中所属阶段,确定目前处于什么阶段
2.3. 标签/标记
这个功能很牛,如果运用得好,就是神器。
目前团队中主要用于:
- 标记
优先级
(优先级1、2、3) - 标记
参与的成员
(可以作为每个月查看成员认领了什么任务,完成了什么) - 标记
任务状态
(正在做、待认领、已完成,方便认领任务) - 标记
任务类型
(文档、部署、公告)
参考资料: 基于GitLab的Code Review教程