不同开发场景中切换分支
🎯 第一步:先记住每个分支的「固定职责」(所有团队通用)
先给每个分支定死"身份",永远不要跨界使用:
| 分支名 | 固定角色 | 代码状态 | 谁能改? |
|---|---|---|---|
main/master |
【线上生产分支】:永远对应线上正在运行的代码,绝对稳定、可直接上线 | 100%稳定 | 只能通过PR合并,禁止直接改 |
dev/develop |
【开发集成分支】:所有新功能、普通bug的汇总分支,下一个版本的开发基准 | 开发中,基本稳定 | 所有开发人员通过PR合并 |
feature/xxx功能名 |
【功能开发分支】:单个新功能的开发分支 | 开发中,不稳定 | 只有你自己改 |
hotfix/xxxbug名 |
【线上紧急bug分支】:修复线上正在出的bug | 修复中 | 只有你自己改 |
bugfix/xxxbug名 |
【普通bug分支】:修复开发过程中发现的bug(还没上线的bug) | 修复中 | 只有你自己改 |
📌 第二步:所有常见场景→直接对应分支(按这个来100%不会错)
| 你现在要做什么事?(场景) | 应该切换到哪个分支? | 操作步骤(固定流程) | 为什么选这个分支? |
|---|---|---|---|
| 1. 开始开发一个全新的功能 | 先切dev → 拉feature/xxx |
1. git switch dev 2. git pull origin dev 3. git switch -c feature/登录功能 |
功能要基于最新的开发基准分支开发,开发完合并回dev |
| 2. 线上出bug了,需要紧急修复(用户现在就能看到的bug) | 先切main → 拉hotfix/xxx |
1. git switch main 2. git pull origin main 3. git switch -c hotfix/支付失败修复 |
线上bug必须基于线上正在运行的代码修复,不能带dev里未上线的开发代码! |
| 3. 测试环境发现bug(还没上线,只是开发过程中的bug) | 先切dev → 拉bugfix/xxx |
1. git switch dev 2. git pull origin dev 3. git switch -c bugfix/列表分页bug |
普通bug是开发过程中的问题,基于开发分支修复,修复完合并回dev |
| 4. 把自己开发完的功能,合并到开发分支 | 先切dev |
1. git switch dev 2. git merge feature/登录功能 3. 推远程提PR |
只有dev是开发集成分支,所有功能最终都要汇总到dev |
| 5. 线上bug修复完,要上线 | 先切main |
1. 把hotfix分支提PR合并到main 2. 合并完切 main拉最新代码部署 |
main是唯一的上线分支,只有合并到main的代码才能上线 |
| 6. 同步别人刚合并到dev的最新代码,继续开发自己的功能 | 先切dev → 再切回自己的feature分支 |
1. git switch dev 2. git pull origin dev 3. git switch feature/登录功能 4. git merge dev |
先拉dev最新代码,再合并到自己的功能分支,避免后续冲突 |
| 7. 把线上刚修复的bug,同步到开发分支dev | 先切dev |
1. git switch dev 2. git cherry-pick hotfix里的bug修复提交哈希 |
只把bug修复同步到dev,不要把main的其他代码带过来 |
| 8. 查看线上代码是什么样的,排查线上问题 | 直接切main |
git switch main && git pull origin main |
main永远和线上代码一致,看main就是看线上代码 |
| 9. 测试同事要测试你开发的功能 | 切到自己的feature/xxx分支 |
把feature分支推到远程,测试环境拉这个分支测试 | 自己的功能分支独立,测试不影响其他开发 |
| 10. 版本要上线了,要打版本标签 | 切main |
合并完所有要上线的代码到main,在main分支打tag | 版本标签永远打在上线分支main上 |
🌳 第三步:10秒快速决策树(遇到问题按顺序问自己)
1 | 你现在要做的事: |
⚠️ 最容易踩的3个错误(90%的新手都犯过)
❌ 错误1:从dev分支拉hotfix修复线上bug
→ 后果:把dev里未上线的开发代码带到线上,上线后会出现未知问题!
→ 正确:所有线上bug修复,必须从main分支拉hotfix
❌ 错误2:直接在main/dev分支开发代码
→ 后果:多人同时改同一个分支,冲突爆炸,代码混乱,无法回滚
→ 正确:所有开发/修复,必须拉自己的独立分支,开发完再合并
❌ 错误3:合并代码的时候,从自己的分支合并main/dev
→ 后果:把自己未完成的代码带到主分支,污染主分支
→ 正确:合并永远是**「主分支合并自己的分支」**,不是「自己的分支合并主分支」
💡 总结成一句口诀:
开发功能从dev拉,修线上bug从main拉,所有改动都开独立分支,永远不在主分支直接写代码
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Mount256的个人小站!



