Skip to content

Git Flow 规范

分支管理

分支类型说明:

  1. 主分支:长期存在的核心分支
  2. 功能分支:用于新功能开发
  3. 修复分支:用于问题修复
  4. 重构分支:用于代码重构
  5. 优化分支:用于性能优化
  6. 紧急修复分支:用于生产环境紧急修复
  7. 发布分支:用于版本发布准备
  8. 其他分支:包括格式、文档、构建、CI、测试、工具配置等

分支生命周期

主分支生命周期

  • main:永久存在,只接受 releasehotfix 分支的合并
  • develop:永久存在,作为开发的主干分支
  • test:永久存在,用于测试环境部署
  • uat:永久存在,用于用户验收测试

功能分支生命周期

  • 创建:从 develop 分支创建
  • 存活期:功能开发完成并合并后删除
  • 最长存活期:建议不超过 2 周
  • 合并后:必须删除

修复分支生命周期

  • hotfix:创建后 24 小时内必须完成修复并合并
  • bugfix:创建后 3 天内必须完成修复并合并
  • 合并后:必须删除

发布分支生命周期

  • 创建:从 develop 分支创建
  • 存活期:版本发布完成后删除
  • 最长存活期:建议不超过 1 周
  • 合并后:必须删除

工作流程规范

分支创建流程

  1. 创建前:确保本地代码与目标分支同步
  2. 创建时:遵循命名规范
  3. 创建后:及时推送到远程仓库

开发工作流程

  1. 每日工作开始:拉取最新代码
  2. 开发过程中:定期提交代码(建议每天至少一次)
  3. 提交信息:遵循约定式提交规范
  4. 代码审查:必须通过 Pull Request

合并流程

  1. 合并前:
    • 确保代码通过所有测试
    • 确保代码通过代码审查
    • 解决所有冲突
  2. 合并时:
    • 使用 Pull Request
    • 填写完整的合并说明
    • 指定至少一名审查者
  3. 合并后:
    • 删除已合并的分支
    • 更新相关文档

发布流程

  1. 版本发布前:
    • 创建 release 分支
    • 进行完整测试
    • 更新版本号
  2. 发布时:
    • 合并到 maindevelop
    • 打版本标签
  3. 发布后:
    • 删除 release 分支
    • 更新发布文档

紧急修复流程

  1. 发现问题:立即创建 hotfix 分支
  2. 修复过程:
    • 优先修复问题
    • 编写测试用例
    • 进行代码审查
  3. 修复完成后:
    • 合并到 maindevelop
    • 打补丁版本标签
    • 删除 hotfix 分支

主要分支

  • main: 主分支,用于生产环境
  • develop: 开发分支,用于开发环境

辅助分支,是以关键词开口

  • feat-*: 功能分支
  • release-*: 发布分支
  • hotfix-*: 紧急修复分支
  • bugfix-*: 问题修复分支

工作流程

功能开发

  1. develop 创建 feature 分支
  2. feat 分支开发, 有的团队使用feature,此处只是个人习惯
  3. 完成后合并回 develop

版本发布

  1. develop 创建 release 分支
  2. release 分支进行测试和修复
  3. 完成后合并到 maindevelop

紧急修复

  1. main 创建 hotfix 分支
  2. 修复完成后合并到 maindevelop

分支命名规范

功能分支

  • 格式:feat-功能名称(小驼峰命名法)
  • 示例:feat-useLogin

分支功能命名规范个人推荐,便于团队协作

  • 格式:feat-功能名称(小驼峰命名法)-开发者名称-分支创建的日期
  • 示例:feat-useLogin-zhangsan-20250613

发布分支

  • 格式:release/版本号, 版本号取自当前项目的package.json文件中version
  • 示例:release/v1.0.0

修复分支

  • 格式:hotfix-问题描述
  • 示例:hotfix/login-error

合并规范

  1. 使用 Pull Request 进行代码审查
  2. 确保代码通过所有测试
  3. 保持提交信息清晰
  4. 删除已合并的分支

版本号的更新(有必要的话)

  1. npm version patch 升级小号
  2. npm version minor 升级中号
  3. npm version major 升级大号

参考 Npm 使用小技巧

分支管理总表

分支名称分支类型环境用途说明创建来源合并目标命名规范示例
main主分支生产环境生产环境部署,保持稳定---
develop主分支开发环境开发主分支,日常开发---
test主分支测试环境功能测试和集成测试---
uat主分支用户验收环境用户验收测试---
feat-xxx功能分支开发环境新功能开发developdevelopfeat-userLogin-zhangsan-20240315
fix-xxx修复分支开发环境Bug修复developdevelopfix-loginError-zhangsan-20240315
refactor-xxx重构分支开发环境代码重构developdeveloprefactor-authModule-zhangsan-20240315
perf-xxx优化分支开发环境性能优化developdevelopperf-apiCache-zhangsan-20240315
hotfix-xxx紧急修复分支生产环境生产环境紧急修复mainmaindevelophotfix-paymentError-zhangsan-20240315
bugfix-xxx问题修复分支开发环境问题修复developdevelopbugfix-uiDisplay-zhangsan-20240315
release-xxx发布分支预发布环境版本发布准备developmaindeveloprelease/v1.0.0
style-xxx格式分支开发环境代码格式修改developdevelopstyle-codeFormat-zhangsan-20240315
docs-xxx文档分支开发环境文档更新developdevelopdocs-apiUpdate-zhangsan-20240315
build-xxx构建分支开发环境构建流程修改developdevelopbuild-webpackConfig-zhangsan-20240315
ci-xxxCI分支开发环境CI配置修改developdevelopci-githubActions-zhangsan-20240315
test-xxx测试分支开发环境测试用例修改developdeveloptest-loginFlow-zhangsan-20240315
chore-xxx工具分支开发环境工具配置修改developdevelopchore-depsUpdate-zhangsan-20240315
revert-xxx回滚分支相关环境代码回滚相关分支原分支revert-feat123-zhangsan-20240315

Released under the MIT License.