第 6 课:团队协作标准工作流(Git Flow)
学完前面的内容,你已经掌握了 Git 的基础操作、远程仓库和分支管理。
但在真实公司项目中,开发人员并不会直接在 main 分支上写代码,而是遵循一套团队协作规范。
这一课将学习企业中最常见的 Git Flow 工作流。
6.1 什么是 Git Flow?
Git Flow 是一套基于 Git 分支管理的开发规范。
它的目标是:
让多人协作开发变得有序
避免代码混乱
保证线上代码稳定
例如:
main
存放线上运行代码。
dev
存放开发环境代码。
开发人员:
张三
李四
王五
各自在独立功能分支开发:
feature/login
feature/order
feature/user
开发完成后再统一合并。
6.2 为什么不能直接在 main 开发?
假设:
main
是线上运行中的项目。
此时你开发登录功能:
登录功能开发一半
突然:
线上需要紧急发布
怎么办?
如果直接在 main 开发:
main
├── 已完成代码
├── 未完成代码
└── Bug
根本无法上线。
所以:
main 永远保持稳定
成为团队开发的重要原则。
6.3 Git Flow 分支结构
企业中常见结构:
main
│
└── dev
│
├── feature/login
│
├── feature/order
│
└── feature/user
职责:
main
生产环境
线上运行代码
要求:
绝对稳定
dev
开发环境
团队开发主分支
所有功能最终都会合并到这里。
feature/*
功能分支
例如:
feature/login
feature/order
feature/article
每个功能一个分支。
bugfix/*
Bug 修复分支
例如:
bugfix/login-error
bugfix/order-timeout
用于紧急修复线上问题。
release/*
发布分支
例如:
release/v1.0.0
release/v2.0.0
用于版本发布前测试。
6.4 分支命名规范
推荐:
main
生产环境
dev
开发环境
feature/功能名
例如:
feature/user-login
feature/order-create
feature/article-comment
bugfix/问题名
例如:
bugfix/login-password-error
bugfix/order-timeout
release/版本号
例如:
release/v1.0.0
release/v2.0.0
6.5 开发新功能完整流程
假设:
开发用户登录功能
第一步:
切换到开发分支:
git checkout dev
拉取最新代码:
git pull origin dev
确保:
本地 dev
=
远程 dev
第二步:
创建功能分支:
git checkout -b feature/user-login
结构:
dev
└── feature/user-login
第三步:
开始开发。
例如:
登录页面
登录接口
JWT认证
开发过程中频繁提交:
git add .
git commit -m "完成登录页面布局"
git commit -m "完成登录接口开发"
git commit -m "实现JWT认证"
不要等功能全部完成再提交。
推荐:
完成一个小功能
提交一次
第四步:
推送到远程:
git push -u origin feature/user-login
形成:
本地 feature/user-login
↓
远程 feature/user-login
6.6 Pull Request(PR)
功能完成后。
不要直接:
合并到 dev
正确做法:
提交:
Pull Request
简称:
PR
PR 的作用:
代码审查
流程:
开发人员
↓
提交 PR
↓
组长 Review
↓
通过
↓
合并
这样能避免:
低质量代码进入项目
6.7 Code Review
Review 时重点检查:
代码规范:
命名是否合理
业务逻辑:
实现是否正确
安全问题:
SQL注入
XSS
权限问题
性能问题:
是否存在慢查询
是否存在死循环
6.8 合并功能分支
PR 审核通过后:
合并:
feature/user-login
到:
dev
结果:
dev
├── 登录功能
成功进入开发环境。
6.9 删除功能分支
功能完成后:
删除本地分支:
git branch -d feature/user-login
删除远程分支:
git push origin --delete feature/user-login
保持仓库整洁。
6.10 修复线上 Bug 流程
假设线上发现:
用户登录失败
不能直接在:
dev
修复。
因为:
dev
可能还有未完成功能。
正确做法:
从:
main
创建:
git checkout main
git pull origin main
git checkout -b bugfix/login-password-error
6.11 修复 Bug
修改代码:
修复密码校验逻辑
提交:
git add .
git commit -m "修复登录密码校验Bug"
推送:
git push -u origin bugfix/login-password-error
提交 PR。
6.12 Bug 修复后的合并
首先:
合并到:
main
发布线上。
然后:
同步到:
dev
否则问题还会再次出现。
操作:
git checkout dev
git pull origin dev
git merge bugfix/login-password-error
git push origin dev
最终:
main
修复完成。
dev
同步修复完成。
6.13 Git Flow 完整开发流程
开发新功能:
dev
↓
feature/*
↓
PR
↓
dev
修复线上 Bug:
main
↓
bugfix/*
↓
PR
↓
main
↓
同步到 dev
6.14 团队开发黄金法则
不要直接修改:
main
不要在:
dev
长期开发。
一个功能:
一个 feature 分支
一个 Bug:
一个 bugfix 分支
每天上班第一件事:
git pull
每天下班前:
git push
本课总结
掌握企业 Git Flow:
生产环境:
main
开发环境:
dev
功能开发:
feature/*
Bug修复:
bugfix/*
发布版本:
release/*
开发流程:
git checkout dev
git pull origin dev
git checkout -b feature/user-login
开发代码
git add .
git commit -m "完成登录功能"
git push -u origin feature/user-login
提交 PR
Code Review
合并到 dev
牢记一句话:
main 永远稳定
功能开发走 feature
线上修复走 bugfix
所有代码通过 PR 合并
至此,你已经掌握了企业项目中最常见的 Git 团队协作模式。
下一课《第 7 课:Git 标签(Tag)管理》将学习:
- 什么是 Tag
- 为什么发布版本要打 Tag
- 创建标签
- 查看标签
- 删除标签
- 推送标签
- 企业版本发布规范
- v1.0.0、v2.0.0 的真正含义