中途紧急切换分支修bug
这是 Git 多人协作中最经典的「中途紧急切分支修bug」场景,核心解决方案是用 git stash 临时保存未完成的工作,完整操作流程如下(按顺序执行):
✅ 标准解决方案(推荐,无脏提交)
🔹 第一步:临时保存当前dev分支未完成的工作
你现在在dev分支,代码写了一半不想提交,用 git stash 把所有修改临时"藏起来",让工作区恢复干净:
1 | # 保存当前工作区+暂存区的所有未提交修改,加说明方便后续识别 |
✅ 验证:执行 git status 会显示工作区干净,没有未提交的修改了。
1 | # 查看所有stash记录,能看到你刚才保存的内容 |
🔹 第二步:创建bug修复分支(⚠️ 关键:从干净的主分支拉,不要从dev拉!)
绝对不要从当前的dev分支创建bug分支——dev分支有未上线的开发代码,会把未完成的代码带到bug修复分支里!
1 | # 1. 先切换到干净的线上主分支(main/master,看你们团队的主分支名) |
🔹 第三步:修复bug,完成提交合并
1 | # 1. 修复bug后,正常提交 |
PR评审通过合并到主分支后,bug修复流程完成。
🔹 第四步:回到dev分支,恢复之前未完成的工作
1 | # 1. 切回dev分支 |
✅ 执行完后,你之前写了一半的代码会完整恢复,继续开发即可!
📌 细节补充&避坑
1. stash 常用补充命令
1 | # 查看某个stash的具体修改内容 |
2. 恢复stash时出现冲突怎么办?
如果恢复的时候,dev分支的代码和stash的代码有冲突,Git会提示冲突,和解决合并冲突一样:
- 手动修改冲突文件
git add 冲突文件标记解决- 不需要commit,冲突解决完就可以继续开发了
📌 备选方案(不想用stash的情况)
如果不想用stash,也可以做临时提交,之后撤销:
1 | # 1. 在dev分支,临时提交未完成的代码 |
✅ 效果和stash一样,缺点是会多一条临时的脏提交,不如stash干净。
⚠️ 新手最容易踩的坑
❌ 错误做法:直接从dev分支创建issue-101分支
→ 会把dev里未上线的开发代码带到bug分支,合并到主分支后会把未完成的代码也带上,造成线上事故!
✅ 正确做法:所有hotfix/bugfix分支,必须从干净的线上主分支(main/master)创建!
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Mount256的个人小站!



