# Git分支管理规范 ## 分支类型 | 类型 | 分支名称 | 用途 | 特点 | |------|----------|------|------| | 主分支 | master | 正式版本代码归档 | 受保护,仅运维可合并 | | 主分支 | develop | 日常开发主分支 | 团队开发基准 | | 主分支 | doc | 文档、SQL脚本、配置 | 文档管理 | | 辅助分支 | feature | 功能开发分支 | 临时性,合并后删除 | | 辅助分支 | hotfix | Bug紧急修复 | 临时性,合并后删除 | ## 分支命名规则 ### 功能分支 ``` feature-{项目名}-{版本号}-SNAPSHOT-{日期} ``` 示例:`feature-javadog-v2.1.1-SNAPSHOT-20240703` ### 个人分支 ``` {功能分支}-{开发者姓名} ``` 示例:`feature-javadog-v2.1.1-SNAPSHOT-20240703-zhangsan` ### 预生产分支 ``` feature-{项目名}-{版本号}-{日期} ``` 示例:`feature-javadog-v2.1.1-20240703`(去除SNAPSHOT标识) ### 热修复分支 ``` hotfix-{项目名}-{版本号}-{日期} ``` 示例:`hotfix-javadog-v2.1.2-20240705` ## 分支权限规则 1. master/develop/doc 分支受保护,仅运维可合并 2. 辅助分支为临时分支,合并后询问开发人员是否需要删除 ## 开发流程规则 ### 功能开发流程(五阶段) | 阶段 | 操作 | 核心目的 | |------|------|----------| | 开发前 | 从develop拉取功能分支 | 保持团队起始点一致 | | 开发中 | 组员从功能分支拉取个人临时分支 | 保证开发灵活性 | | 提测中 | 个人分支合并到功能分支 | 流水线打包提测 | | 预生产 | 从功能分支拉取预生产分支(去SNAPSHOT标识) | 环境验证解耦 | | 上线 | 蓝绿部署,分支合并 | 无缝切换,稳定上线 | ### 热修复流程 1. 从 master 拉取 hotfix 分支 2. 修复 Bug 后合并回 master 和 develop 3. 合并后删除 hotfix 分支 ## 蓝绿部署策略 - 定义:同时运行两个生产环境,通过切换实现无缝发布 - 优势:新版本测试期间不影响线上环境 - 流程:蓝线发布新版本 -> 验证通过 -> 蓝绿切换 -> 负载均衡 ## 命名示例汇总 | 分支类型 | 命名格式 | 示例 | |---------|---------|------| | 功能分支 | `feature-{项目}-{版本}-SNAPSHOT-{日期}` | `feature-javadog-v2.1.1-SNAPSHOT-20240703` | | 个人分支 | `{功能分支}-{姓名}` | `feature-javadog-v2.1.1-SNAPSHOT-20240703-zhangsan` | | 预生产分支 | `feature-{项目}-{版本}-{日期}` | `feature-javadog-v2.1.1-20240703` | | 热修复分支 | `hotfix-{项目}-{版本}-{日期}` | `hotfix-javadog-v2.1.2-20240705` |