GitLab 代码管理和分支策略说明

262 阅读4分钟

一、整体流程图

f1abc937663683b632bb9961444c247.png

二、角色与职责

  • 项目负责人

    • 创建新项目仓库。

    • 审核合并请求(Merge Request)。

    • 确定发布计划。

    • 创建并管理 dev-<date>, test-<date>, release/uat-<date>release/pro-<date> 分支。

  • 开发人员

    • dev-<date> 分支创建特性或修复分支。

    • 完成开发,进行单元测试,提交代码并推送到 GitLab。

    • 创建合并请求将代码合并到 dev-<date> 分支。

    • 根据测试反馈,在 test-<date> 分支中修复问题。

  • 测试人员

    • test-<date>分支创建或管理测试环境,进行集成测试和系统测试,提交测试报告。

    • release/uat-<date>分支的 UAT 环境中进行用户验收测试,提交测试报告。

  • 运维人员

    • release/uat-<date> 分支创建 release/pro-<date> 分支。

    • 完成生产环境的部署和监控。

    • 确保生产环境的稳定运行。

三、详细操作步骤

  1. 项目仓库设置

步骤 1:创建新项目仓库 (由项目负责人操作)

  • 登录 GitLab, 点击 "New project" 创建新的项目仓库。

步骤2: 克隆仓库到本地 (由开发人员操作)

git clone <repository-url>
  1. 分支策略

步骤1: 创建并推送 dev-<date> 分支 (由项目负责人或开发负责人操作)

git checkout -b dev-<date>
git push -u origin dev-<date>

git push origingit push -u origin 之间的主要区别在于 -u 选项的使用,该选项是 --set-upstream 的简写。这两个命令的详细解释如下:

  1. git push origin:

    1. 这个命令将你的当前分支推送到远程仓库 origin。如果当前分支有一个已经设置的上游(upstream)分支(例如,如果你已经执行过 git push -u origin),它会被推送到那个上游分支。如果没有设置上游分支,它会尝试推送到一个与当前分支同名的远程分支。

  2. **git push -u origin**:

  • 这个命令不仅将你的当前分支推送到远程仓库 origin,而且还将 origin 设置为当前分支的上游(upstream)分支。

  • 这意味着,在未来,你可以简单地使用 git pushgit pull 命令,而不必指定远程仓库和分支名,Git 会知道你是指 origin 以及对应的分支。

  • 使用 -u 选项是一个很好的做法,尤其是当你首次推送一个新分支到远程仓库时,它可以帮助简化未来的 Git 操作。

-u--set-upstream 选项是用于创建一个追踪关系(tracking relationship)的,这样在未来的 git pushgit pull 操作中,你不必再指定远程仓库和分支名。

  1. 日常开发

步骤0: 分支命名规范

  • dev-<date>: 开发分支
  • test-<date>: 测试分支
  • feature/<feature-name>: 新功能分支
  • bugfix/<bug-name>: 修复bug的分支
  • release/uat-<date>: UAT测试分支
  • release/pro-<date>: 生产发布分支
  • 特性分支: 研发人员可以根据自己的需求自行命名特性分支

步骤1: 从 dev-<date> 分支创建特性或修复分支 (由开发人员操作)

git checkout -b feature/<feature-name> dev-<date>

步骤2: 提交代码并推送到 GitLab (由开发人员操作)

git add .
git commit -m "<commit message>"
git push -u origin feature/<feature-name>

步骤3: 创建合并请求 (Merge Request, MR) (由开发人员操作)

  • 在 GitLab 上, 选择你的分支, 点击 "New Merge Request".

步骤4: 审核和合并代码 (由项目负责人或开发负责人操作)

  • 审核代码,如果符合要求,就将代码合并到 dev-<date> 分支。

  1. 测试与发布

步骤1: 创建测试分支 (由项目负责人或开发负责人操作)

git checkout -b test-<date> dev-<date>

步骤2: 在测试环境中进行测试 (由测试人员操作)

  • 测试人员在测试环境中进行测试,提供测试报告和反馈。

步骤3: 修复测试环境中发现的问题 (由开发人员操作)

  • 根据测试反馈,在 test-<date> 分支中修复问题,并再次进行测试,直至通过测试。

步骤4: 创建 UAT 测试分支 (由项目负责人或开发负责人操作) (暂时未有此环境)

git checkout -b release/uat-<date> test-<date>

步骤5: UAT测试和反馈 (由测试人员和开发人员协作完成)

  • 测试人员在 UAT 环境测试,开发人员根据反馈修复问题。

步骤6: 创建生产发布分支并合并到 master 分支 (由项目负责人或开发负责人操作)

git checkout -b release/pro-<date> release/uat-<date>
git checkout master
git merge release/pro-<date>
git push origin master

步骤7: 生产环境部署 (由运维人员操作)

  • 运维人员基于 master 分支完成生产环境的部署。

四、常见操作实例

  • 克隆仓库: git clone <repository-url>
  • 创建新分支: git checkout -b <branch-name>
  • 提交代码: git add . && git commit -m "<commit message>"
  • 推送代码: git push origin <branch-name>
  • 创建合并请求: 在 GitLab 上, 选择你的分支, 点击 "New Merge Request".