项目开发的过程中,我们可能会遇到bug,这时候需要紧急修复。通常,我们都是新建一个bug分支。但是这时候,你当前工作的分支可能并不能提交(你的东西没写完,无法提交,现在还编译不过去。)。那么如何创建并切换分支?
Git提供了stash功能。即:
git stash
场景是这样的,你修改了README文件。然后git add,这时候bug来了,需要修复。那么执行git stash命令。
然后,找到bug所在的分支,一般应该是master分支。那么这时候你切换到master分支。然后在master分支上创建issue-30分支,并切换到该分支修复bug。
然后修复bug。修复bug以后,切换到master分支,完成分支合并,最后删除issue-30分支即可。
之后你需要切回dev分支继续开发。这时候需要使用git stash list命令来查看。
但是如何恢复现场呢。有两种做法。
git stash apply #恢复现场,但是stash依旧存在
git stash drop #删除stash
另外一种方法如下,直接恢复现场并删除stash。
git stash pop
如果你有多次stash,那么可以使用下面的命令制定恢复到那个stash。
git stash apply stash@{0}
当然了,不建议这么做,因为这不太好,bug来了就及时修复,修完一个bug接着修下一个,不能说是上一个没修完,又去修复下一个bug。
现在存在一个问题,那就是dev分支依旧存在这个bug,怎么办?在你没删除isuee-30之前,使用下面的命令即可:
git cherry-pick e951a27
这样就可以避免重复在dev分支修改该bug。