Git实战教程[四]——BUG热修复

此处的“BUG热修复”指的是不影响dev分支的情况下修复master主线上某一版本的BUG。

假定场景

  1. 项目在半个月前发布了1.0.0版本,并在master主线上打了一个名为1.0.0的TAG;
  2. 客户今天突然发现了生产环境上一个严重的BUG,接到投诉的项目经理要求对问题紧急修复,并尽快发布;
  3. 项目的代码相对1.0.0版本已经是面目全非的状态;
  4. 你已经阅读过[Git实战教程[二]——本地开发]

操作流程图如下
QQ截图20170116233331_副本.png

1. Stash保存工作镜像

  • TortoiseGit -> Stash Save
    QQ截图20170116214333.png
  • 在弹出的窗口填写镜像信息,方便之后还原
    QQ截图20170116214644.png

2. 基于tag v1.0.0创建fix bug分支

右键项目 TortoiseGit -> Create Branch,在弹出窗口中填写分支名称,并选择Base On Tag v1.0.0。
QQ截图20170116133625.png

3. 修复Bug

  • 在fix bug分支上修复bug
  • 修复后提交修改到本地仓库
  • push代码到hotfix分支

4. 更新hotfix分支

  • hotfix合并fix bug分支push的内容(Merge时注意选择from Branch remotes/origin/hotfix),待测试人员测试

5. 更新dev分支

注:hotfix测试通过后master分支的发布将由Master角色的人员负责,而developer虽然不用处理master分支,但是仍然要把fix bug分支的内容提交到dev分支,否则下次发布版本时bug依然存在。

  • 从dev分支pull,更新hotfix代码
    QQ截图20170116230220.png
  • 在假定场景中提到v1.0.0与dev相差很大,所以pull后出现冲突是非常正常的。
    QQ截图20170116230650.png
  • 对于冲突的地方应按提示进行修改,解决冲突。
    QQ截图20170116230704.png
  • 解决完冲突后fix bug分支push代码到dev分支,然后再merger dev分支即可。

6. Stash Pop还原工作镜像

  • TortoiseGit -> Stash Pop 还原成上一次Stash保存的工作镜像。
    (若有多个stash镜像可通过TortoiseGit -> Stash List查看镜像列表,然后指定一个镜像进行还原)

[目录]
[上一篇] Git实战教程[三]——本地开发
[下一篇] Git实战教程[五]——发布操作


发表评论