【Git】分支管理
- 【一】分支策略
- 【二】版本管理策略
- 【三】完整的开发工作流示例
- 【四】Git提交信息规范
-
- [【1】约定式提交(Conventional Commits)](#【1】约定式提交(Conventional Commits))
- 【2】提交模板配置
- 【五】管理周期
【一】分支策略
【1】分支结构
java
main (或 master) - 生产环境代码,永远稳定
↑
release/* - 预发布分支,用于测试和修复
↑
develop - 开发主分支,集成功能
↑
feature/* - 功能分支
hotfix/* - 热修复分支
bugfix/* - 缺陷修复分支
【2】分支类型说明
(1)release分支
用于归并已发布已稳定的代码
(2)develop分支【来自release】
用于合并已测试待发布的代码
(3)feature分支【来自develop】
用于开发新功能,指明功能信息,开发中测试中的代码
(4)hotfix分支【来自develop】
用于生产紧急修改,从release切出,开发完后要合并到上述所有分支
(5)bugfix分支【来自develop】
用于修复缺陷,开发完要合并到所有feature功能分支
java
# 主分支
main/master - 保护分支,只能通过PR合并
develop - 保护分支,日常开发集成
# 功能分支(从develop创建)
git checkout -b feature/user-authentication develop
git checkout -b feature/payment-integration develop
# 热修复分支(从main创建,用于生产紧急修复)
git checkout -b hotfix/critical-security-fix main
# 发布分支(从develop创建)
git checkout -b release/v1.2.0 develop
【二】版本管理策略
【1】语义化版本控制(SemVer)
java
// 版本格式:主版本号.次版本号.修订号
版本号:1.2.3
- 1: 主版本号 - 不兼容的API修改
- 2: 次版本号 - 向下兼容的功能性新增
- 3: 修订号 - 向下兼容的问题修正
【2】Maven项目版本配置
xml
<!-- pom.xml -->
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.yourcompany</groupId>
<artifactId>your-service</artifactId>
<version>1.2.3</version>
<!-- 使用properties管理依赖版本 -->
<properties>
<java.version>17</java.version>
<spring-boot.version>3.2.0</spring-boot.version>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
</project>
【三】完整的开发工作流示例
【1】新功能开发流程
(1)从develop创建功能分支feature
(2)新功能提交到feature
(3)将测试完的feature代码合到develop
(4)发布上线从develop拿包
java
# 1. 从develop创建功能分支
git checkout develop
git pull origin develop
git checkout -b feature/user-management
# 2. 开发并提交(遵循约定式提交)
git add .
git commit -m "feat: 添加用户权限管理功能
- 实现RBAC权限控制
- 添加用户管理API
- 编写单元测试"
# 3. 推送到远程
git push -u origin feature/user-management
# 4. 创建Pull Request到develop分支
【2】发布流程
java
# 1. 创建发布分支
git checkout develop
git checkout -b release/v1.3.0
# 2. 更新版本号(Maven示例)
mvn versions:set -DnewVersion=1.3.0
git add pom.xml
git commit -m "chore: 发布版本v1.3.0"
# 3. 合并到main和develop
git checkout main
git merge --no-ff release/v1.3.0
git tag -a v1.3.0 -m "Release version 1.3.0"
git checkout develop
git merge --no-ff release/v1.3.0
# 4. 删除发布分支
git branch -d release/v1.3.0
【四】Git提交信息规范
【1】约定式提交(Conventional Commits)
java
feat: 添加用户注册功能
fix: 修复登录验证漏洞
docs: 更新API文档
style: 代码格式调整
refactor: 重构支付模块
test: 添加用户服务测试
chore: 更新依赖版本
【2】提交模板配置
java
# ~/.gitmessage 创建提交模板
feat: [简要描述]
[详细描述修改内容]
[关联的Issue编号,如:Fix #123]
【五】管理周期
(1)分支生命周期要短:功能分支应在1-2周内完成
(2)频繁合并:定期将develop合并到功能分支,减少冲突
(3)代码审查:所有PR必须经过审查
(4)自动化测试:CI/CD流水线必须包含测试环节
(5)版本追溯:每个生产版本都要打标签