這篇文章進行Gitlab的學習,聊聊如何設定保護分支並且給自己的Leader提交一個PR,希望對大家有幫助!
保護分支是幹嘛的呢?
前面我們在git flow工作流程中介紹過,master|main
(主分支)分支是上線分支,如果每個開發人員都能隨意的在主分支push程式碼,假如上線的時候,哪個開發不小心把自己不需要上線的程式碼(有可能有很多bug)push到了主分支,上線的時候一起帶上去了,那麼造成的損失有可能無法挽回。所以我們需要設定主分支不允許push,只能用PR的方式把自己的程式碼合併到主分支。
下面我們來操作一下。在專案中找settings
->Repository
->Protected branches
,選擇受保護的分支,這裡我們的主分支是main,然後選擇merge權限為Maintainers,不允許任何人push程式碼到主分支。最後點選profect
下面我們來push一下程式碼試試看
可以很明顯的看到,已經不讓任何人推送程式碼了。要推送程式碼,只能另外新建分支去推送到遠端,然後把程式碼合併到主分支。
為什麼會有Merge reqeust呢?
前面提到,main分支是我們的保護分支,已經不需要本地push程式碼,那麼我們的程式碼要如何合併到主分支呢?這時候就需要開發人員發起一個Merge reqeust
來把我們的程式碼合併到main分支了。 Merge request還有一個用途很重要,那就是code review
。
何為code review
呢?
code review
翻譯過來就是程式碼審查。一個公司,一個團隊,對代碼是有規範的,對代碼是有要求的,對質量是有要求的,你寫的代碼是要經過你的leader審查的,才能合併到主分支,所以這一步操作在你主管合併之前,會吧你寫的程式碼肉眼過一遍,確保不會出現重大線上問題才會給你合併,如果有問題,會讓你重新改程式碼重新提交Merge requst
,直到符合上線要求。這樣做的目的呢,也是為了確保上線不出問題,畢竟出了重大的線上bug,你的leader是要承擔責任和風險的,問題嚴重的部門領導也跟著倒霉。所以,我們寫程式的同時也要非常的嚴謹。
講了這麼多,下面我們實際操作一下。
在本地新建一個dev
分支,然後修改一些東西push
到遠程,首次推送需要使用git push -u origin dev
,因為遠程沒有這個分支。
刷新頁面可以看到,我們現在在main分支,上面顯示一個Create merge request
按鈕,這裡就是我們發起merge請求的地方,點擊一下
進入到merge頁面,這裡我們可以看到我們現在是想把dev
分支merge到main
分支,如果想合併其他的分支,點擊change branches
即可修改。 title
和description
可以填入你提交merge相關的功能描述。
Assignee
和Reviewer
為受讓人和審查人員,直白一點就是想的程式碼誰給你審查,你就選擇誰。
這裡可以看到你這次合併提交的commit資訊和修改內容
最後,點選Create merge request
,即可發起一個merge請求,剩下的事情就是你的leader審查程式碼了。
你的leader看到的merge訊息是這樣子的,這裡他可以看到你的commits和changes,從而看到你的程式碼的修改內容。如何沒有問題,點選Merge
按鈕即可合併。
以上就是一個完成Merge reqeust
的過程以及它的重要性。
merge的過程中還可以涉及到CI/CD的一些工作,例如對程式碼規格做lint校驗,程式碼單元測試等工作,後文會一一講到。
(學習影片分享:程式設計基礎影片)
以上是聊聊Gitlab中如何設定保護分支並且提交PR的詳細內容。更多資訊請關注PHP中文網其他相關文章!