场景:当线上项目出现 bug 时,而且这个时候你正在基于线上版本的基础上开发新功能,该如何修复 bug ?
方式一:使用分支 merge 合并的方式:
第一步 | 先将你 dev 开发分支上的进度提交到本地仓库:git add .、git commit -m ‘新功能1/2’ |
第二步 | git revert 用一次新的 commit 来回滚之前的 commit 版本,将出现 bug 的上一个版本紧急上线,为用户提供服务 |
第三步 | 基于有 bug 的 master 分支的基础上,新建一个 bug 分支,修复完成后提交,并将其合并到 master 分支,再将 bug 分支删除 |
第四步 | 继续切换到 dev 开发分支进行开发,开发完成之后提交,并将 dev 开发分支合并到 master 分支 |
第五步 | 将最新的 master 分支(已经修复bug,并具有新功能)上线,为用户提供服务 |
方式二:使用分支 stash 临时切换的方式(俗称:通灵术)
第一步 | 先在dev开发分支 git add .、git stash 暂时提取分支上所有的改动并存储,git checkout 临时转向其他分支工作 |
第二步 | 基于有 bug 的 master 分支的基础上,新建一个 bug 分支,修复完成后提交,并将其合并到 master 分支,再将 bug 分支删除 |
第三步 | 切换回 dev 开发分支,git stash pop 将剪贴板上保存的改动恢复回来,继续开发 |