版本管理之SVN实践教程:进阶篇(4):gitflow模拟:hotfix

版权声明:本文为博主原创文章,未经博主允许欢迎转载,但请注明出处。 https://blog.csdn.net/liumiaocn/article/details/81942186

这里写图片描述

hotfix分支

hotfix分支与release分支非常相像,都牵扯到向生产环境ready的master进行版本的更新。但是不同的是hotfix往往是因为生产环境上出现了非常紧急的问题对应,需要立即对应,而项目的特性开发等又不想受到影响而中断,这时就可以依据master生成一个新的hotfix的分支,在此分支上进行bug的对应,既不影响develop主开发分支,又能保证到生产环境紧急问题的及时对应,而对应完毕之后同时向develop主开发分支进行同步跟新即可。

Hotfix分支在使用时候一般遵循如下步骤:

步骤 内容 git 命令
Step 1 以master分支为基础创建hotfix分支 svn copy master分支URL hotfixes分支下的URL
Step 2 进行bug对应,然后进行提交 svn add ; svn commit -a -m “hotfix相关信息”
Step 3 切换至master分支 cd ../../master
Step 4 合并hotfix分支内容到master分支 svn merge hotfixes分支下的URL
Step 5 切换至develop分支 cd ../develop
Step 6 合并hotfix分支内容到develop分支 svn merge hotfixes分支下的URL
Step 7 删除hotfix分支 svn rm hotfixes分支下的URL

hotfix分支的使用注意事项如下:

注意事项 详细说明
源分支 hotfix分支需要以master分支为源分支
目标分支 特性分支的合并目标分支为develop分支和master,修正必须同时反映到develop分支和master分支,不然就会给下次发布留下隐患
分支命名 gitflow建议命名为hotfix-*,但是由于svn方式的不同,所有的hotfix分支已经在hotfixes以下,建议不要再使用重复信息

注:其他的一些注意事项可参照前面对release分支使用的介绍。

模拟

场景说明:
hotfix就是简单的bug对应,在上篇文章里也模拟了一种情况就是在上线的时候发现的小型bug,可能改个三到五行,快速测试能保证结果的情况下,或者是发现的bug必须当时解决才能上线,这种情况下在release的时候就改了。
但是跟多的情况是没有这么紧急的bug,或者修改和影响较大,修改和测试需要更长时间的bug,gitflow中是通过hotfix临时分支来对应的。

Step 1:以master分支为基础创建hotfix分支

[root@platform gitflow-repo]# svn copy svn://192.168.163.129:3690/gitflow-repo/master svn://192.168.163.129:3690/gitflow-repo/hotfixes/Bug.3000001

Committed revision 15.
[root@platform gitflow-repo]#

Step 2:进行bug对应,然后进行提交

[root@platform gitflow-repo]# svn update
Updating '.':
A    hotfixes/Bug.3000001
A    hotfixes/Bug.3000001/C1
A    hotfixes/Bug.3000001/C2
A    hotfixes/Bug.3000001/C3
A    hotfixes/Bug.3000001/C4
Updated to revision 15.
[root@platform gitflow-repo]# cd hotfixes/Bug.3000001/
[root@platform Bug.3000001]# ls
C1  C2  C3  C4
[root@platform Bug.3000001]# touch C5; svn add C5; svn commit -m "add C5 in hotfix Bug.3000001"
A         C5
Adding         C5
Transmitting file data .
Committed revision 16.
[root@platform Bug.3000001]#

Step 3:切换至master分支

[root@platform Bug.3000001]# cd ../../master
[root@platform master]# 

Step 4:合并hotfix分支内容到master分支

[root@platform master]# svn merge svn://192.168.163.129:3690/gitflow-repo/hotfixes/Bug.3000001
--- Merging r15 through r16 into '.':
A    C5
--- Recording mergeinfo for merge of r15 through r16 into '.':
 U   .
[root@platform master]# svn commit -m "hotfix for Bug.3000001"
Sending        .
Adding         C5

Committed revision 17.
[root@platform master]# 

Step 5:切换至develop分支

[root@platform master]# cd ../develop
[root@platform develop]#

Step 6:合并hotfix分支内容到develop分支

[root@platform develop]# svn merge svn://192.168.163.129:3690/gitflow-repo/hotfixes/Bug.3000001
--- Recording mergeinfo for merge of r2 through r14 into '.':
 G   .
--- Merging r15 through r17 into '.':
A    C5
--- Recording mergeinfo for merge of r15 through r17 into '.':
 G   .
[root@platform develop]# svn commit -m "hotfix for Bug.3000001"
Sending        .
Adding         C5

Committed revision 18.
[root@platform develop]# 

Step 7:删除hotfix分支

[root@platform develop]# svn del svn://192.168.163.129:3690/gitflow-repo/hotfixes/Bug.3000001

Committed revision 19.
[root@platform develop]# cd ..
[root@platform gitflow-repo]# svn update
Updating '.':
D    hotfixes/Bug.3000001
Updated to revision 19.
[root@platform gitflow-repo]#

猜你喜欢

转载自blog.csdn.net/liumiaocn/article/details/81942186