【Git】Git生产项目分支管理实战指南包含开发、测试、生产、bug修复和需求迭代
Git生产项目分支管理实战指南包含开发、测试、生产、bug修复和需求迭代
- 核心分支结构
- 完整分支管理流程图
- 详细分支结构与使用规范
- 1. 核心分支(永久存在)
- 2. 临时分支(用后删除)
- 完整工作流程详解
- 📥 需求开发流程
- 🧪 测试与Bug修复流程
- 🚀 发布与上线流程
- 🔥 热修复流程(生产紧急修复)
- 分支命名规范与策略
- 命名约定表
- 分支生命周期控制
- 最佳实践与优化建议
- 1. 代码提交规范
- 2. PR(合并请求)策略
- 3. 自动化集成配置
- 4. 环境部署策略
以下是适用于生产环境的Git分支管理方案,包含开发、测试、生产、bug修复和需求迭代全流程:
核心分支结构
完整分支管理流程图
详细分支结构与使用规范
1. 核心分支(永久存在)
分支名称 | 说明 | 保护策略 | 环境对应 |
---|---|---|---|
main | 生产环境分支,只包含稳定可运行的代码 | 禁止直接提交,只接受PR合并 | 生产环境 |
dev | 集成开发分支,包含下个版本所有功能 | 禁止直接提交,只接受PR合并 | 开发环境 |
test | 测试分支,用于QA测试 | 可push,但建议使用PR | 测试环境 |
2. 临时分支(用后删除)
分支类型 | 命名规范 | 创建来源 | 合并目标 | 用途 |
---|---|---|---|---|
功能分支 | feature/[JIRA-ID]-[description] | dev分支 | dev分支 | 新功能开发 |
Bug修复分支 | bugfix/[JIRA-ID]-[description] | test分支 | test分支 | 测试中发现的问题修复 |
热修复分支 | hotfix/[JIRA-ID]-[description] | main分支 | main和dev | 生产环境紧急修复 |
发布分支 | release/release-v[version] | test分支 | main分支 | 版本发布准备 |
完整工作流程详解
📥 需求开发流程
代码示例:创建功能分支
# 从dev分支创建新功能分支
git checkout -b feature/PROJ-123-add-login-module dev# 本地开发完成后提交
git add .
git commit -m "PROJ-123: 完成登录功能开发"
git push origin feature/PROJ-123-add-login-module
🧪 测试与Bug修复流程
Bug修复流程要点:
- 所有测试发现的缺陷都在bugfix分支修复
- 修复完成后需要合并到test和dev分支
- 高优先级bug添加priority/urgent标签
🚀 发布与上线流程
版本发布操作:
# 创建发布分支
git checkout -b release/release-v1.2.0 test# 最终验证通过后合并到main
git checkout main
git merge --no-ff release/release-v1.2.0
git tag -a v1.2.0 -m "Release version 1.2.0"# 同步到dev分支
git checkout dev
git merge main
🔥 热修复流程(生产紧急修复)
热修复特点:
- 绕过正常流程,优先解决生产问题
- 合并后保留分支以备回滚
- 修复完成后需立即同步到dev分支
分支命名规范与策略
命名约定表
分支类型 | 格式 | 示例 | 长度限制 |
---|---|---|---|
功能分支 | feature/JIRA-ID-description | feature/PROJ-142-oauth-login | 30字符 |
Bug修复 | bugfix/JIRA-ID-description | bugfix/PROJ-152-login-error | 30字符 |
热修复 | hotfix/JIRA-ID-description | hotfix/PROJ-155-security-patch | 30字符 |
发布 | release/release-v[version] | release/release-v1.3.0 | - |
分支生命周期控制
- 临时分支:保留不超过30天(除release分支)
- Release分支:保留至下个版本发布后7天
- 自动化清理:配置GitLab/GitHub自动化规则:
# GitLab CI示例
cleanup:rules:- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'when: delayedstart_in: '30 days'
最佳实践与优化建议
1. 代码提交规范
- 关联JIRA/Bug追踪ID:PROJ-123: Add user login feature
- 使用命令式语气(Fix, Add, Update, Remove)
- 正文说明修改原因和影响范围
2. PR(合并请求)策略
3. 自动化集成配置
# 示例GitHub Action工作流
name: CI Pipelineon:push:branches:- 'feature/*'- 'bugfix/*'- devpull_request:branches:- dev- testjobs:build-and-test:runs-on: ubuntu-lateststeps:- name: Checkout codeuses: actions/checkout@v3- name: Build projectrun: ./build.sh- name: Run testsrun: ./run-tests.sh- name: Deploy to environmentif: success()run: |if [[ $GITHUB_REF == refs/heads/dev ]]; then./deploy-dev.shelif [[ $GITHUB_REF == refs/heads/test ]]; then./deploy-test.shfi
4. 环境部署策略
分支 | 触发条件 | 部署环境 | 验收标准 |
---|---|---|---|
dev | 合并后 | 开发环境 | 编译通过 |
test | PR合并后 | 测试环境 | 自动化测试通过 |
release | 手动触发 | 预发环境 | QA验收通过 |
main | 手动触发 | 生产环境 | 发布验证 |
关键建议:生产发布采用金丝雀发布策略,先部署到5%的生产节点验证,再逐步扩大到100%
通过这套分支管理方案,团队可以实现:
- 生产环境稳定性最大化
- 功能开发与修复并行不悖
- 快速响应线上紧急问题
- 清晰的版本管理和历史追溯