draft项目通过5月份的加班加点,终于开发完成,代码要封版。大家都是在dev分支开发的,代码封版时,将dev分支的代码合并到主干分支master时可费了劲儿了,上周我们几个同事前前后后折腾了两天,还是有问题。
今天上完线必须要封版了。所以务必得搞定。
我之前scm工具主要用svn,用git也就近半年的时间,之前也没有合并主干代码的权限,所以对git并不熟悉。
百度解答不了我的问题,就再去咨询同事。
同事的建议是,把dev的代码复制一份,去掉git版本控制,通过这种方式把代码提交到git服务器上。我疑问能不能把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设置截图: