当前碰到的问题(现结单采取策略一):
策略一、每个开发者都能够push代码到dev分支,而没有审核,同时也能发起由dev分支向master分支的merge请求,这无法实现代码控制。
流程如下:
l 从源仓库clone代码到本地
l 向源仓库dev分支push代码,开发者没有权限push到master分支
l 开发者可以发起dev向master分支的merge请求。(所有dev都有权限发起merge请求,但是只有管理员做merge)
l 管理员review代码接收merge请求
l master打一个tag作为本次上线版本
策略二、理想的环境是,用户每一次push都是提交到自己的gitlab仓库,然后再从自身的gitlab仓库发起对源仓库的merge代码合并。管理员在这一刻起到代码审核的作用。但是这导致了流程的复杂化。
流程如下:
l 从源仓库fork代码到自己主页
l clone主页代码到本地
l 向自己的主页push代码
l 由自己主页向源仓库dev分支发起merge请求
l 管理员review审核代码是否允许merge请求
l 所有开发人员完成一阶段的开发后,管理员向源仓库master发起merge请求
l master打一个tag作为本次上线版本
策略三、任意开发者都不能向dev push和merge,只能通过commit branch然后提交merge来合并代码。(策略三解决冲突很麻烦,暂时不使用)
l 从源仓库clone代码到本地
l 在本地创建功能分支,然后把分支提交到平台上
l 在平台上发起merge请求,把feature分支合并到dev分支。(不允许向master分支发起merge)
l 管理员review代码接收merge请求
l master打一个tag作为本次上线版本