合并請求分支保護(hù)規(guī)則設(shè)置:保障代碼質(zhì)量的實用技巧
在團(tuán)隊協(xié)作開發(fā)中,主分支被隨意提交代碼的情況并不少見。比如小李趕工期,直接往 main 分支 push 了一個未測試的功能,結(jié)果系統(tǒng)上線后出了問題。這類情況完全可以通過“合并請求分支保護(hù)規(guī)則設(shè)置”來避免。
分支保護(hù)規(guī)則的核心作用是:防止直接向關(guān)鍵分支(如 main、develop)提交代碼,強(qiáng)制通過合并請求(Merge Request)流程進(jìn)行代碼審查和自動化檢查。
如何設(shè)置分支保護(hù)規(guī)則
以 GitLab 為例,在項目頁面進(jìn)入 “Settings > Repository”,展開 “Protected Branches” 部分。在 “Branch” 下拉框中選擇要保護(hù)的分支,比如 main,然后配置權(quán)限:
- Allowed to merge:指定可以合并 MR 的人員或角色(如 Maintainer)
- Allowed to push:通常設(shè)為“No one”以杜絕直接推送
- 并勾選“Require merge request to merge”
這樣,任何想把代碼合入 main 的人都必須發(fā)起 MR,并經(jīng)過批準(zhǔn)才能合并。
結(jié)合 CI/CD 檢查更安全
光有 MR 還不夠,還得確保代碼通過測試??梢栽诒Wo(hù)規(guī)則中啟用“Require pipeline to succeed”。這樣一來,如果單元測試或構(gòu)建失敗,即使審批通過也無法合并。
例如,你在項目中配置了 .gitlab-ci.yml 文件:
test:
script:
- npm install
- npm test
only:
- merge_requests這條流水線會在每次 MR 創(chuàng)建時自動運行。只有測試通過,狀態(tài)檢查才綠,才能繼續(xù)合并。
要求審批人提升代碼質(zhì)量
在保護(hù)規(guī)則中設(shè)置“Minimum number of approvals”,比如設(shè)為 1 或 2。這意味著至少需要一位同事 review 并批準(zhǔn)你的代碼。
實際工作中,這個機(jī)制能有效減少低級錯誤。比如前端同事提交了一個拼寫錯誤的類名,review 時被后端一眼發(fā)現(xiàn),避免了樣式不生效的問題。
有些團(tuán)隊還會設(shè)置“Prevent merge requests without approvals”,徹底堵住繞過審查的可能。
通配符保護(hù)多環(huán)境分支
除了 main,很多項目還有 release/v*、hotfix/* 等命名規(guī)范的分支。GitLab 支持使用通配符來批量保護(hù):
release/*
hotfix/*把這些模式添加到保護(hù)分支中,就能統(tǒng)一管理發(fā)布分支的行為,避免臨時分支被誤操作刪除或直接提交。
這套規(guī)則設(shè)置一次,長期受益。新成員加入時也不用反復(fù)提醒“別直接 push”,系統(tǒng)會自動攔住。
合理使用合并請求分支保護(hù)規(guī)則,不只是技術(shù)設(shè)置,更是一種協(xié)作文化的落地。它讓每一次代碼變更都有跡可循,有審有查,真正把風(fēng)險擋在上線前。