此处的“BUG热修复”指的是不影响dev分支的情况下修复master主线上某一版本的BUG。
假设场景
- 项目在半个月前发布了1.0.0版本,并在master主线上打了一个名为1.0.0的TAG;
- 客户今天突然发现了生产环境上一个严重的BUG,接到投诉的项目经理要求对问题紧急修复,并尽快发布;
- 项目的代码相对1.0.0版本已经是面目全非的状态;
- 你已经阅读过《Git实战教程[二]——本地开发》。
操作流程图如下
1. Stash保存工作镜像
- TortoiseGit -> Stash Save
- 在弹出的窗口填写镜像信息,方便之后还原
2. 基于tag v1.0.0创建fix bug分支
右键项目 TortoiseGit -> Create Branch,在弹出窗口中填写分支名称,并选择Base On Tag v1.0.0。
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代码
- 在假定场景中提到v1.0.0与dev相差很大,所以pull后出现冲突是非常正常的。
- 对于冲突的地方应按提示进行修改,解决冲突。
- 解决完冲突后fix bug分支push代码到dev分支,然后再merger dev分支即可。
6. Stash Pop还原工作镜像
- TortoiseGit -> Stash Pop 还原成上一次Stash保存的工作镜像。
(若有多个stash镜像可通过TortoiseGit -> Stash List查看镜像列表,然后指定一个镜像进行还原)
[目录]
[上一篇] Git实战教程[三]——本地开发
[下一篇] Git实战教程[五]——发布操作