开发与测试整体过程中的Git分支merge流程
Git分支merge之开发流程
首先在Gitlab上有个仓库存储着原始的项目代码,其中包含一个叫master的分支。然后可能按功能进行分配,由不同的开发人员分别将master分支拉出来改作其新的开发分支,比如叫func1分支、func2分支之类的名字。
对应的QA负责测试各自对应开发所写的功能模块,假设有QA两名,分别为tester1和tester2,当他们接到各自开发dev1和dev2写的两个分支func1分支和func2分支后:
1. 如果二人在不同的环境上测试,则分别拉出来master分支成为其新的test分支——test1分支和test2分支,并将对应的func1和func2分支代码与自己建立的test1和test2分支代码进行merge;
2. 如果两人共用一个环境进行测试,且事先没有建立test分支,则首先拉出来master分支成为新的test分支,然后将func1和func2分支的代码与test分支的代码进行merge。
至此测试环境上已经有merge好的可供测试的代码分支,我们可以对测试环境进行部署并进行第一轮测试。
Git分支merge之测试流程
第一轮测试过程中,如果发现问题,提交jira,跟踪bug,开发修改代码后更新分支,QA要将新的func分支代码merge进其test分支后再进行测试。以此循环下去,直到第一轮测试结束并确认无误后,由专门的人员(非开发人员)将各个func分支代码merge到一个总的dev分支(若merge过程中遇到冲突则由开发进行解决),然后将dev分支给QA进行第二轮测试。
第二轮测试过程中,如果发现问题,提交jira,跟踪bug,开发修改代码后更新其负责的相应的func分支并告诉专门的人员(非开发人员)将其func分支再merge到dev分支中,然后将dev分支发给QA,QA将该新的dev分支merge到其test分支后再进行测试,如此往复。
第三轮确认测试,第二轮测试结束后,确认没有问题了,将由专门的人员(非开发人员)再次将各个func分支merge到一个release分支中,由QA进行上线前的最后一轮在线确认测试。在最接近真实环境的环境进行在线确认,确认无误后,内部发布上线,在线上环境进行确认。无误后,确认产品发布并由专门的人员(非开发人员)将release分支代码merge到master分支和dev分支。
至此,产品成功发布上线,master分支和dev分支代码更新完毕。
Git之QA操作
作为QA,在这一整体的流程中,需要确保其负责的测试分支是最新的,需要实时的merge开发所给的代码。步骤如下:
1. 从Gitlab上克隆仓库到本地;
2. 进入仓库并创建test分支在本地;
3. 从本地的master分支切换到新建的test分支;
4. fetch一下远端代码;
5. 将开发分支merge到test分支上(若merge过程中遇到冲突须由开发来对冲突部分代码进行确认并解决);
6. Push test分支到远端;
7. 部署代码到服务器端(过程类似于以上过程,可由公司内部系统自动部署在服务器端)并进行测试。
以上过程可以下载并使用TortoiseGit这一软件完成,也可以下载安装Git并在Git Bash中通过命令行的方式完成。