一、创建工程
一个新项目首先需要在gitlab上建立一个工程。针对一个特定的嵌入式项目,一般里面会有boot app等。所以顶层目录建议使用一个subgroup。如下图所示先建立一个subgroup:
然后在该group下再建立project,如下图所示:
创建好的工程如下所示:
二、构建gitflow工作流
1.对空项目的处理
新创建的空项目添加一个readme,并且上传。
2.使用sourcetree clone该项目
3.一键构建本地gitflow工作流
点击确定后,需要等待一段时间,由于gitflow创建的是本地的工作流,所以后面需要用gitflow管理的其他项目成员也需要一键构建。
4.develop推送到远端。
三、gitlab上对新项目设置
1.利用issue创建分支来替代gitflow的feature分支
gitflow工作流标准的开发是从develop上创建一个本地的feature分支,但是不方便跟踪维护,建议利用issue来创建分支开发。这个在github上也是很流行的。
2.默认分支设置
把默认分支改为develop,这样issue创建的分支就从该分支下切出,和gitflow的流程对应上。
3.保护分支设置
该设置需要根据项目组不同角色划分具体设置,可以根据不同项目的需求更改!
现在项目组成员就可以愉快的开发了,可以创建issue,从develop分支切出分支开发,开发完进行对应的merge。
例如创建了一个名为test1的issue,并且切出分支工作,如下图所示:
如果创建分支的时候source不是develop,说明设置默认分支那一步没做对!
四、分支下的开发
1.回到sourcetree,点击获取来找到远端创建的test1分支。
2.将本地分支切到test1
双击下图所示的1-test1即可
五、合并请求
issue对应的功能开发并自测完成后,需要提交一个合并请求,如果在开发过程中develop上有新的其他合并了,需要先把develop拉到test1分支上,解决冲突后再提交合并请求!
合并请求前的视图,实际开发中可能是多个提交点:
打开gitlab,点击对应工程下的test1 issue
点击create merge request
选择负责合并的人员
此时负责合并的人员就可以在他的网页上看到一个merge request申请。责任人检查要合入的代码,如果不符合要求可以让相关人员撤销掉然后修改后再次提交申请。
如果代码检查没有问题,则责任人点击merge按钮进行合并,也可以写下评语
六、发布新版本
经过一段时间开发,完成了该阶段的开发功能,就可以发布一个版本。发布的过程也对应了测试的过程
1.develop上创建release分支
发布的版本名对应最终的tag标签,要仔细填写,例如我的第一个版本叫v1.0
点击确定后,本地会产生一个v1.0的release分支,该分支建议只有责任人本地有,中间的节点不用提交到远端,除非测试太久。
2.与测试的互动
创建好的release分支是和某一个比较新的develop分支一样的,但是该分支并没有经过系统性测试,所以需要提交一个测试申请,测试人员介入。过程中可能有bug以及对bug的修复,所以release分支上也会在本地产生几次提交。如下图所示:
当测试完成了本轮测试并且没问题的情况下,需要将代码中的版本号改成v1.0并提交!
3.最终发布
如果release分支测试没问题,可以发布了,点击Git工作流,点击完成发布版本
如果release的过程中develop分支没有新的增长,则按下图所示勾选并点击确定。
如果release的过程中有新的develop了则不要勾选“推送变更到远程仓库”,发布后手动决定develop的处理!