一、bug分支
1、
当你接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支
issue-101
来修复它,但是,等等,当前正在
dev
上进行的工作还没有提交:
![](https://note.wiz.cn/api/document/files/unzip/0a7eafd0-7f2d-4fb4-9f8e-5e465a5dc1d4/b9ed2fbc-0a5f-4733-b931-ae758a58becd.8033/index_files/71765a4c-a823-470b-8948-f11ebfe1a7c3.png)
2、
工作只进行到一半,还没法提交,预计完成还需1天时间。但是,必须在两个小时内修复该bug,怎么办?
幸好,Git还提供了一个
git
stash
功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:
![](https://note.wiz.cn/api/document/files/unzip/0a7eafd0-7f2d-4fb4-9f8e-5e465a5dc1d4/b9ed2fbc-0a5f-4733-b931-ae758a58becd.8033/index_files/46484fe6-068d-4184-acd3-8a9811d188e0.png)
3、
现在,用
git status
查看工作区,就是干净的(除非有没有被Git管理的文件,如stash.txt),因此可以放心地创建分支来修复bug。
![](https://note.wiz.cn/api/document/files/unzip/0a7eafd0-7f2d-4fb4-9f8e-5e465a5dc1d4/b9ed2fbc-0a5f-4733-b931-ae758a58becd.8033/index_files/1dec31c9-4b52-405c-86a7-e926fd17a618.png)
4、bug修复完成后,回到dev分支,工作区是干净的,用
git stash list查看,工作现场还在
![](https://note.wiz.cn/api/document/files/unzip/0a7eafd0-7f2d-4fb4-9f8e-5e465a5dc1d4/b9ed2fbc-0a5f-4733-b931-ae758a58becd.8033/index_files/dee6f2c1-91ac-469b-95b3-5c8692f515bb.png)
5、恢复工作现场:
【1】git stash apply恢复,git stash drop删除stash内容
【2】git stash pop恢复的同时把stash内容也删了
![](https://note.wiz.cn/api/document/files/unzip/0a7eafd0-7f2d-4fb4-9f8e-5e465a5dc1d4/b9ed2fbc-0a5f-4733-b931-ae758a58becd.8033/index_files/33659fe1-23a0-4933-8b57-f279067149f1.png)
6、再用git stash list查看,看不到任何stash内容了。可以多次stash,恢复时候用
git stash apply stash@{0}
![](https://note.wiz.cn/api/document/files/unzip/0a7eafd0-7f2d-4fb4-9f8e-5e465a5dc1d4/b9ed2fbc-0a5f-4733-b931-ae758a58becd.8033/index_files/e989694c-4ff0-400d-9856-e206077ef113.png)
小结
修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
当手头工作没有完成时,先把工作现场git stash
一下,然后去修复bug,修复后,再git stash pop
,回到工作现场。