You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
5.8 KiB
5.8 KiB
Git 分支策略
分支结构
主要分支
main
- 用途: 生产就绪的稳定代码
- 保护: 不允许直接推送,只能通过PR合并
- 特点: 始终保持可部署状态
develop
- 用途: 开发集成分支,所有功能分支的合并目标
- 更新频率: 持续集成新功能
- 特点: 最新的开发进度,但可能不稳定
功能分支
feature/ui-redesign
- 用途: 界面重设计相关开发
- 基于: develop分支
- 包含:
- 主界面布局重构
- 设备卡片组件开发
- 样式主题系统
feature/database-enhancement
- 用途: 数据库优化和功能增强
- 基于: develop分支
- 包含:
- 数据库连接管理改进
- 新表结构实现
- 数据模型优化
feature/component-system
- 用途: 可复用组件系统开发
- 基于: develop分支
- 包含:
- DeviceCard组件
- StatusPanel组件
- MapViewer组件
支持分支
hotfix/critical-fix
- 用途: 紧急修复生产问题
- 基于: main分支
- 合并到: main 和 develop
release/v2.0.0
- 用途: 版本发布准备
- 基于: develop分支
- 包含: bug修复、文档更新、版本号调整
分支命名规范
功能分支
feature/<功能描述>
feature/ui-redesign
feature/database-enhancement
feature/device-card-component
修复分支
bugfix/<问题描述>
bugfix/connection-timeout
bugfix/ui-layout-issue
热修复分支
hotfix/<紧急问题>
hotfix/database-crash
hotfix/security-vulnerability
发布分支
release/<版本号>
release/v2.0.0
release/v2.0.1
工作流程
1. 功能开发流程
# 1. 从develop创建功能分支
git checkout develop
git pull origin develop
git checkout -b feature/ui-redesign
# 2. 开发过程中定期提交
git add .
git commit -m "feat: 实现设备卡片基础布局"
git commit -m "feat: 添加设备状态指示器"
git commit -m "style: 应用新的颜色主题"
# 3. 推送到远程分支
git push origin feature/ui-redesign
# 4. 创建Pull Request
# 通过GitHub/GitLab界面创建PR
# 目标分支: develop
# 描述: 详细的功能说明和测试结果
2. 代码审查流程
PR模板
## 功能描述
简要描述此PR实现的功能
## 变更内容
- [ ] UI界面重设计
- [ ] 数据库结构优化
- [ ] 新增组件开发
- [ ] 性能优化
- [ ] Bug修复
## 测试清单
- [ ] 单元测试通过
- [ ] 集成测试通过
- [ ] 手动功能测试
- [ ] 性能测试
- [ ] 兼容性测试
## 截图/演示
(如果有UI变更,请提供截图或GIF演示)
## 相关Issues
Closes #123, Relates to #456
3. 集成流程
# 1. 功能完成后合并到develop
git checkout develop
git pull origin develop
git merge feature/ui-redesign
git push origin develop
# 2. 删除已合并的功能分支
git branch -d feature/ui-redesign
git push origin --delete feature/ui-redesign
4. 发布流程
# 1. 从develop创建发布分支
git checkout develop
git pull origin develop
git checkout -b release/v2.0.0
# 2. 版本准备工作
# 更新版本号
# 更新CHANGELOG.md
# 最后的bug修复
# 3. 合并到main和develop
git checkout main
git merge release/v2.0.0
git tag v2.0.0
git push origin main --tags
git checkout develop
git merge release/v2.0.0
git push origin develop
# 4. 删除发布分支
git branch -d release/v2.0.0
提交信息规范
提交类型
- feat: 新功能
- fix: 修复bug
- docs: 文档更新
- style: 代码格式调整(不影响功能)
- refactor: 重构代码
- test: 测试相关
- chore: 构建过程或辅助工具的变动
提交格式
<type>(<scope>): <subject>
<body>
<footer>
示例
git commit -m "feat(ui): 实现新的设备卡片组件
- 添加设备状态实时显示
- 实现信号强度进度条
- 支持设备操作快捷按钮
Closes #123"
git commit -m "fix(database): 修复连接池内存泄漏问题"
git commit -m "docs: 更新API文档和用户手册"
分支保护规则
main分支保护
- 禁止直接推送
- 要求PR审查
- 要求状态检查通过
- 要求分支是最新的
develop分支保护
- 要求PR审查
- 要求CI构建通过
- 允许管理员强制推送(紧急情况)
CI/CD集成
自动化检查
# .github/workflows/ci.yml
name: CI
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Qt
uses: jurplel/install-qt-action@v2
- name: Build
run: |
qmake CasualtySightPlus.pro
make
- name: Test
run: |
# 运行测试
make test
最佳实践
1. 分支管理
- 保持分支简洁,及时删除已合并的分支
- 定期同步develop分支到功能分支
- 避免长期存在的功能分支
2. 提交管理
- 小而频繁的提交
- 每个提交只做一件事
- 提交信息清晰描述变更内容
3. 代码审查
- 所有代码必须经过审查
- 审查重点关注功能正确性、代码质量、性能影响
- 及时响应审查意见
4. 发布管理
- 版本号遵循语义化版本规范
- 每个版本都有完整的CHANGELOG
- 重要版本需要充分测试
紧急情况处理
生产环境紧急修复
# 1. 从main创建hotfix分支
git checkout main
git checkout -b hotfix/critical-database-fix
# 2. 快速修复
git commit -m "hotfix: 修复数据库连接泄漏导致的崩溃"
# 3. 同时合并到main和develop
git checkout main
git merge hotfix/critical-database-fix
git tag v2.0.1
git push origin main --tags
git checkout develop
git merge hotfix/critical-database-fix
git push origin develop
此分支策略确保了代码质量、团队协作效率和项目的稳定发布。