文章目录
场景
线上在使用的用户突然发现系统或者 app 运行不正常了,比如说突然网站的商品显示不出来。用户通常会打电话给客服投诉,客服找到运营后,运营直接在缺陷跟踪系统上提工单(比如在 jira 上提一个 task),里面会写上详细的一些 bug 信息,包括什么时间,谁反馈,截图,如何复现等。随后这个 bug 会被指派给一个负责的 RD 和一个对应的 QA。
RD 会去看一下那个工单,尝试在本地先复现出来,然后去修复那个 bug,再部署到预发布环境,让 QA 快速的回归一下,验证一下那个 bug 是否修复了。好了以后,就直接上线。
但是修复线上 bug,需要从 master 分支拉一个 bugfix 分支出来的,而此时可能 RD 手头正在开发 feature 分支,代码才写到一半,没弄完呢。如果 RD 此时要切换分支,在 git 中是会让你先 commit 当前 feature 分支的代码,然后再切换到 bugfix 分支的。如果把写到一半儿的代码就贸然提交一个 commit 的话,你的 commit将包含了一半的代码,弄一个不伦不类的 commit 记录出来,可能违反公司规范!
这种情况如何处理呢?
stash 保护现场
使用 git 的 stash 功能,可以将 feature 分支开发的代码全部暂存起来,然后将工作区的代码恢复到干净的状态,好像什么都没修改过一样。
比如,张三正在 feature/002 分支开发时,突然间要求去修复一个 bug。