0.摘要
本文主要介绍在开发过程中,如何应用分支管理策略处理Bug的紧急修复问题。
1.问题与解决方案
在开发软件的过程中,可能会不定期地发现一些Bug,而这些Bug往往需要及时地修复,即便我们正在进行着其他的工作。
这里有几个问题需要解决:
如何保存现有的工作
在哪个分支下修复Bug
如何恢复现有工作
首先,目前的工作并未完成,不适合直接commit,那么Git提供了git stash命令保存现有的工作,并可以多次使用该命令保存。保存之后,可以通过git shash list查看
git stash #保存现有工作
git stash list #查看已保存的工作
在保存好现有的工作的情况下,我们就可以放心地去修复bug了。当前的分支并不适合用来修复Bug,所以我们回到master分支,创建一个新的临时分支用来修复Bug。
git checkout master
git checkout -b issue1 #创建临时分支
在Bug修复之后,我们回到之前工作的分支,恢复并删除保存的工作现场。
git stash apply #恢复之前保存的工作现场
git stash drop #删除已经保存的工作现场
上面的两条命令也可合为一条:
git stash pop #恢复工作现场并删除
2.实例
假设dev分支下正在编写一个名为new_task的模块,在之前的程序中一个名为hello.py的程序出现了Bug需要修复。
git add new_task #添加new_task
git status #查看当前状态,Git会提醒您有文件未commit
git stash #保存工作现场
git status #再次查看当前状态,此时Git显示: working tree clean
git checkout master #回到主分支
git checkout -b issue1 #新建分支用于修复Bug
…… #完成Bug修复工作
git checkout master #回到主分支
git merge --no-ff -m "fix Bug in hello.py" #将Bug修复内容merge到主分支
git checkout dev #切换回工作分支
git stash list #查看以保存的工作现场列表
git stash apply #还原工作现场
git stash drop #删除工作现场
…… #继续完成开发工作