
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設置截圖:


