版本管理之SVN实践教程:进阶篇(2):gitflow模拟:feature分支开发

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

这里写图片描述

特性分支

特性分支有时也被称为Topic分支,一般是用来开发新的特性,而其关联的发布可能近在眼前,也有可能需要很长一段时间,特性分支最终会被合并到develop分支或者最终会被丢弃。

性分支开发的时候在git flow模型中一般遵循如下步骤:

步骤 内容 git 命令
Step 1 以develop分支为基础创建特性分支 svn copy develop分支URL 特性分支名称(放到features下)
Step 2 进行特性内容开发直至可以提交
Step 3 特性分支开发完成后切换至develop分支 cd ../../develop
Step 4 合并特性分支开发内容到develop分支 svn merge 特性分支名URL
Step 5 develop分支分支内容提交 svn commit -m “merge for …”
Step 6 删除特性分支 svn rm 特性分支名URL

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

注意事项 详细说明
源分支 特性分支需要以develop分支为源分支
目标分支 特性分支的合并目标分支为develop分支,此模型中只能合并回develop分支
分支命名 除去master/develop/hotfix-/release-命名的所有分支

模拟

场景说明:以开发主分支develop的某一时点为基础,创建临时特性开发分支,开发完成之后合并回develop分支,并将此临时特性开发分支删除。

Step 1: 创建特性分支F1001

[root@platform develop]# svn copy svn://192.168.163.129:3690/gitflow-repo/develop svn://192.168.163.129:3690/gitflow-repo/features/F1001

Committed revision 5.
[root@platform develop]#

Step 2:开发并提交

在特性分支上进行开发,并提交,这里生成一个新的文件C3

[root@platform gitflow-repo]# cd features/F1001/
[root@platform F1001]# touch C3; svn add C3; svn commit -m "add C3 in feature F1001"
A         C3
Adding         C3
Transmitting file data .
Committed revision 6.
[root@platform F1001]#

Step 3: 切换至develop分支

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

Step 4:内容合并至develop分支

[root@platform develop]# svn merge svn://192.168.163.129:3690/gitflow-repo/features/F1001
--- Merging r5 through r6 into '.':
A    C3
--- Recording mergeinfo for merge of r5 through r6 into '.':
 U   .
[root@platform develop]# 

Step 5:develop分支内容提交

[root@platform develop]# svn commit -m "merge for feature branch F1001"
Sending        .
Adding         C3

Committed revision 7.
[root@platform develop]# 

Step 6:删除特性分支

特性分支内容已经合并到develop分支,包括日志信息都已包含,特性分支本身是临时分支,除非有特殊理由,包括gitflow的标准模型也建议此时删除,在svn 中使用rm命令将此不用的分支删除,不然会越积越多。

[root@platform develop]# svn rm svn://192.168.163.129:3690/gitflow-repo/features/F1001

Committed revision 8.
[root@platform develop]#

本地更新一下就可以看到,特性分支F1001已经被删除

[root@platform gitflow-repo]# svn update
Updating '.':
D    features/F1001
Updated to revision 8.
[root@platform gitflow-repo]# 

整体日志确认

[root@platform gitflow-repo]# svn log
------------------------------------------------------------------------
r8 | devuser1 | 2018-08-26 17:39:29 -0400 (Sun, 26 Aug 2018) | 2 lines

delete feature branch F1001

------------------------------------------------------------------------
r7 | devuser1 | 2018-08-26 17:34:24 -0400 (Sun, 26 Aug 2018) | 1 line

merge for feature branch F1001
------------------------------------------------------------------------
r6 | devuser1 | 2018-08-26 17:31:37 -0400 (Sun, 26 Aug 2018) | 1 line

add C3 in feature F1001
------------------------------------------------------------------------
r5 | devuser1 | 2018-08-26 17:29:48 -0400 (Sun, 26 Aug 2018) | 2 lines

init feature branch F1001

------------------------------------------------------------------------
r4 | devuser1 | 2018-08-26 17:25:29 -0400 (Sun, 26 Aug 2018) | 1 line

add C2 in develop branch
------------------------------------------------------------------------
r3 | devuser1 | 2018-08-26 17:21:33 -0400 (Sun, 26 Aug 2018) | 2 lines

init develop branch

------------------------------------------------------------------------
r2 | devuser1 | 2018-08-26 17:18:55 -0400 (Sun, 26 Aug 2018) | 1 line

add C1
------------------------------------------------------------------------
r1 | devuser1 | 2018-08-26 17:13:36 -0400 (Sun, 26 Aug 2018) | 1 line

init gitflow structure
------------------------------------------------------------------------
[root@platform gitflow-repo]#

这样一个特性分支就完成了它的历史使命,从哪里来(develop)还回归到了哪里(develop)去,最终被删除。

猜你喜欢

转载自blog.csdn.net/liumiaocn/article/details/81942183
今日推荐