1/2 🍀新项目的代码要封版,如何操作gitlab,从开发分支合并代码到master分支?

draft项目通过5月份的加班加点,终于开发完成,代码要封版。大家都是在dev分支开发的,代码封版时,将dev分支的代码合并到主干分支master时可费了劲儿了,上周我们几个同事前前后后折腾了两天,还是有问题。

今天上完线必须要封版了。所以务必得搞定。

我们之前scm工具主要用svn,用gitlab也就近半年的时间,之前也没有合并主干代码的权限,对gitlab并不熟悉。

百度解答不了我的问题,就再去咨询同事。

同事的建议是,把dev的代码复制一份,去掉git版本控制,通过这种方式把代码提交到gitlab服务器上。我疑问能不能把master分支删掉。因为我知道,在IDEA里,从dev获取最新,据此创建新的分支并且命名为master,然后把代码push到远程gitlab服务器上,不就可以有master分支了么!同事告知master分支是受保护的,删不了的,并称不清楚在哪里可以设置。

受保护?同事的提示有如点睛之笔,让我对gitlab有了进一步了解。那现在的问题就变成了能(如)否(何)让master不受保护。

办法总比问题多。我向来喜欢琢磨,很快,就找到了答案。

答案隐藏在项目的git里的“设置”里。

设置→Edit Project,打开Project settings功能
修改Default Branch。

设置→Protected Branches,打开Protected Branches功能
在Protect a branch这个panel里,可以选择一个branch,点击“Protect”按钮;
在Protected Branches这个panel里,“Unprotect”按钮可以取消分支的受保护。

通过上述方法,可以把master分支改成一个普通的分支,然后删掉它。

接下来就是在本地IDE里,从dev分支获取最新,据此创建新的分支并且命名为master,然后把代码push到远程gitlab服务器上。当然,完事之后要把master分支重新设置成Default和Protected。搞定!

git设置截图:

gitlab 限制用户创建分支 gitlab设置项目权限_git

gitlab 限制用户创建分支 gitlab设置项目权限_服务器_02

2/2 🍀gitlab设置项目组成员权限

setting菜单的“Members”功能页:

该页面展示了当前Project的成员列表,以及每个成员对应的权限角色,Owner/Master/Developer

gitlab 限制用户创建分支 gitlab设置项目权限_git_03

注意到该页面顶部有一个panel可以给当前Project添加一个成员。

那么,要修改现有成员的角色,怎么办?

答案也是在上面panel里操作。添加完成后会覆盖已有记录。

gitlab 限制用户创建分支 gitlab设置项目权限_Developer_04

EOF