图解Gitlab Flow

  • Gitlab Flow 图形演示

  • GitLab Flow 命令演示

Gitlab Flow 图形演示

GitLab Flow 是一种版本控制工作流,结合了 Git 的分支模型和持续集成/持续交付 (CI/CD) 的最佳实践,适用于持续开发和交付的场景。以下是其图形表示及示例说明:


1. GitLab Flow 图形表示

f10019d07e4e3f09f08d28c6e1e42b04.png

主要分支角色:
  1. Main Branch (主分支):
    持续集成的目标分支,代码质量可靠,随时可以部署到生产环境。

  2. Feature Branch (功能分支):
    每个新功能或修复从主分支分出,开发完成后合并回主分支。

  3. Release Branch (发布分支):
    用于准备发布,进行 QA 测试、错误修复等。

  4. Hotfix Branch (热修复分支):
    紧急问题修复分支,从主分支创建,修复完成后直接合并回主分支。


2. 示例说明

场景:一个电子商务平台的开发流程。
  1. 功能开发阶段

  • 需求:开发“添加优惠券”功能。

  • 操作:开发者从主分支创建 feature/add-coupon 分支,完成代码开发后提交合并请求 (Merge Request, MR)。

  • 结果:经过代码评审后,合并到主分支。

发布准备阶段

  • 需求:即将发布 v1.1.0 版本。

  • 操作:从主分支创建 release/v1.1.0,进行全面测试和优化,发现问题在分支中修复。

  • 结果:测试完成后,分支内容合并回主分支,并打上 v1.1.0 标签。

热修复阶段

  • 需求:生产环境中发现订单支付功能出现重大 Bug。

  • 操作:从主分支创建 hotfix/fix-payment-bug,快速修复后提交合并请求。

  • 结果:修复代码经过审查,合并到主分支并立即部署。


3. 优势总结

  • 清晰的分支管理:明确了功能开发、发布准备、和紧急修复的流程。

  • 支持持续集成/交付:主分支保持可部署状态。

  • 适配多种开发场景:灵活适用于小型团队和企业级开发。

GitLab Flow 命令演示

以电子商务平台开发流程为例,演示 GitLab Flow 实现的具体命令。


1. 功能开发阶段

需求:开发“添加优惠券”功能。
# 从主分支更新代码,确保最新
git checkout main
git pull origin main

# 创建功能分支
git checkout -b feature/add-coupon

# 开发代码并提交(多次提交可视情况而定)
git add .
git commit -m "Add coupon feature implementation"

# 推送功能分支到远程仓库
git push origin feature/add-coupon

# 在 GitLab 上发起 Merge Request (MR)
# -- 在 GitLab 页面操作 --

# MR 被合并后,清理本地分支
git checkout main
git pull origin main
git branch -d feature/add-coupon
git push origin --delete feature/add-coupon

2. 发布准备阶段

需求:准备发布 v1.1.0 版本。
# 从主分支更新代码
git checkout main
git pull origin main

# 创建发布分支
git checkout -b release/v1.1.0

# 修复或调整代码(如测试问题)
git add .
git commit -m "Fix minor issues for v1.1.0 release"

# 推送发布分支到远程仓库
git push origin release/v1.1.0

# 经 QA 测试后,合并到主分支
# 在 GitLab 上合并后,本地同步主分支并打标签
git checkout main
git pull origin main
git tag v1.1.0
git push origin v1.1.0

# 清理本地和远程发布分支
git branch -d release/v1.1.0
git push origin --delete release/v1.1.0

3. 热修复阶段

需求:修复支付功能的重大 Bug。
# 从主分支更新代码
git checkout main
git pull origin main

# 创建热修复分支
git checkout -b hotfix/fix-payment-bug

# 修复代码并提交
git add .
git commit -m "Fix critical bug in payment module"

# 推送热修复分支到远程仓库
git push origin hotfix/fix-payment-bug

# 在 GitLab 上发起 MR,审核通过后合并到主分支
# 合并后部署新版本到生产环境

# 合并后,清理本地和远程热修复分支
git checkout main
git pull origin main
git branch -d hotfix/fix-payment-bug
git push origin --delete hotfix/fix-payment-bug

4. GitLab CI/CD 配合发布

GitLab Flow 通常结合 CI/CD 管道来实现自动化构建和部署。例如,在 .gitlab-ci.yml 中配置以下内容:stages: - test - deploy test: stage: test script: - echo "Run tests" - npm test

deploy_production:
  stage: deploy
  only:
    - tags
  script:
    - echo "Deploy to production"
    - ./deploy.sh

每当代码合并到主分支并打标签后,CI/CD 将自动触发部署流程。


这些命令和流程结合 GitLab 页面操作,可以实现规范化的 GitLab Flow。

be73291ba0a7e94b52f4c56934d2dec5.jpeg