版权声明:本文为博主原创文章,未经博主允许欢迎转载,但请注明出处。 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]#