团队 Git 分支管理与发版流程
团队基于 master / dev / feat / fix 四类分支的迭代开发与热修复流程,配合 rebase 整理提交历史与 Merge Request 评审。
分支策略
- master:始终与生产环境一致。
- dev:集成测试环境分支。
- feat_*:功能开发分支,源于 dev,合并回 dev。
- fix_*:热修复分支,源于 master,合并回 master 和 dev。
- Rebase:提交 Merge Request 前用
git rebase把本地提交整理成一条直线,便于评审与集成。 - 同步机制:BUG 修复完成后必须同步到 dev,否则下次迭代同一 BUG 可能再次出现。
新功能迭代开发流程
flowchart TD
A[迭代开始] --> B[拉取 master 主干代码]
B --> C[检出并切换到 dev 分支]
C --> D["从 dev 切出功能分支<br>feat_功能名称_人员名称"]
D --> E[进行开发]
E --> F{开发完成?}
F -- 否 --> E
F -- 是 --> G[拉取远端 dev 最新代码]
G --> H["在功能分支上执行:<br>git rebase dev"]
H --> I[解决可能出现的冲突]
I --> J["提交 Merge Request<br>源:feat → 目标:dev"]
J --> K[团队代码评审]
K -- 需修改 --> L[本地修改后再次 rebase 并强推]
L --> J
K -- 通过 --> M[Merge 至 dev 分支]
M --> N[构建 dev 分支进行测试]
N --> O{测试通过?}
O -- 发现 BUG --> P[在 dev 上修复或切新分支修复]
P --> N
O -- 通过 --> Q["提交 Merge Request<br>源:dev → 目标:master"]
Q --> R[团队代码评审]
R -- 通过 --> S[Merge 至 master 分支]
S --> T[进行发版]
T --> U["将 master 打上版本 Tag<br>如: v1.0.0"]
U --> V[迭代结束]
发版后 BUG 修复流程
flowchart TD
A[发现生产环境 BUG] --> B["从 master 最新 Tag<br>切出修复分支 fix_功能_人员名称"]
B --> C[进行 BUG 修复]
C --> D{修复完成?}
D -- 否 --> C
D -- 是 --> E[拉取远端 master 最新代码]
E --> F["在 fix 分支上执行:<br>git rebase master"]
F --> G[解决可能出现的冲突]
G --> H["提交 Merge Request<br>源:fix → 目标:master"]
H --> I[紧急代码评审]
I -- 需修改 --> J[本地修改后再次 rebase 并强推]
J --> H
I -- 通过 --> K[Merge 至 master 分支]
K --> L[发版并将 master 打上新 Tag]
L --> M[拉取远端 dev 最新代码]
M --> N["在 fix 分支上执行:<br>git rebase dev"]
N --> O[解决可能出现的冲突]
O --> P["提交 Merge Request<br>源:fix → 目标:dev"]
P --> Q[代码评审]
Q -- 通过 --> R[Merge 至 dev 分支<br>确保后续开发包含此修复]
R --> S[BUG 修复流程结束]
原文链接:https://www.ssssmy.com/notes/tuan-dui-git-fen-zhi-guan-li-yu-fa-ban-liu-cheng