开发⼯具:git09、feature分⽀开发到⼀半时切换到bugfix分⽀
⽂章⽬录
场景
线上在使⽤的⽤户突然发现系统或者 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。
此时可以先将当前⼯作区的代码保存起来
stash之后,⼯作区的代码状态是:
会发带鼎字的四字成语
现刚才的代码没了,查看 stash 列表会发现刚才的对⾯被暂存到 stash 了。⽽此时 git 的 status 也是working tree。
接着,张三就可以基co2是什么
于远程的 bug 分⽀拉取并创建⼀个 bug 分⽀到本地修复 bug
git fetch origin
git checkout -b bugfix/002 origin/bugfix/002
bug 修复完后,push 到远程 bug 的分⽀,然后发起 PR,测试的英文
依次申请合并到 master 分⽀和 develop 分⽀。合并后删除远程和本地 bug 分⽀,再切换到本地的 feature 分⽀进⾏后续的开发。
stash 恢复现场
⽅式⼀
git stash list
gi海阔天空造句
t sta陈玄霸
sh apply
执⾏第⼀条命令,先查看 stash 列表,再执⾏第⼆条命令,将最近⼀次 stash 给恢复回来
恢复到现场后继续开发,完成该分⽀的功能,集成到 develop 分⽀,然后基于 develop 分⽀拉⼀个 relea 分⽀,测试完成后将 relea 分⽀合到 master 分⽀,打新 tag 再上线。
⽅式⼆
git stash apply 序号
直接指定序号,恢复到指定时刻的⼯作区状态。
⽅式三(暂存区五年级生字表
)
如果执⾏ git stash 的时候,有放⼊了暂存区的内容,在恢复的时候需要使⽤如下命令恢复现场
git stash apply --index
该形容龙的词语
命令会同时将⼯作区和暂存区中的内容进⾏恢复
删除 stash
git stash drop 序号
⽐如删除处于暂存区的 stash@{1}
注意事项
默认情况下,它只会将⼯作区中的修改的⽂件进⾏ stash,也就是指 stash ⼀些 modified 状态的⽂件。如果要将 untracked 和暂存区中的⽂件都进⾏ stash。要使⽤如下命令:
git stash --index --include-untracked
该命令将暂存区中 tracked 和 untracked 的内容全部进⾏ stash 暂存