Git 学习笔记 - 14 - Bug分支
注:本文参照的是廖雪峰老师的Git教程
概述:
在开发中,很多时候我们还没有开发完一个项目,此时之前开发出现了Bug,这时就需要我们去进行修复,在 Git 中,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。
当你接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支issue-101
来修复它,但是,等等,当前正在dev
上进行的工作还没有提交。此时需要用到其它操作命令来存储当前的工作现场,待修复了Bug之后,再恢复之前的工作。
操作:(之前的命令不在重复编写,见图片)
-
查看当前状态,发现存在修改。
-
存储当前的工作现场。等之后修复完Bug后在恢复。
git stash
-
查看存储后的现场,发现工作区已经干净了。
-
确定要在哪个分支上修复bug,假定需要在
master
分支上修复,就从master
创建临时分支。 -
在临时分支上修复Bug
假设修复:需要把“Git is free software …”改为“Git is a free software …”,然后提交。
-
修复完成后,切换到
master
分支,并完成合并,最后删除issue-101
分支 -
此时我们回到dev分支上
-
查询dev的状态,发现之前的修改不见了,
-
使用
git stash list
命令查看当前存储的状态,发现之前存储的工作现场 -
恢复之前的工作现场。
恢复有两个办法:
一是用
git stash apply
恢复,但是恢复后,stash内容并不删除,你需要用git stash drop
来删除;另一种方式是用
git stash pop
,恢复的同时把stash内容也删了。这里使用的是 pop方法,毕竟是练习,没那么多讲究。
-
再次查看发现之前的工作现场不见了。
注:可以使用多次 git stash
来保存多个现场,在恢复的时候,先使用git stash list
查看,然后恢复指定的stash,用命令:
$ git stash apply stash@{0}
总结:
修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
当手头工作没有完成时,先把工作现场git stash
一下,然后去修复bug,修复后,再git stash pop
,回到工作现场。