1 背景
剛換了一個工作,當前單位的程式碼管理特別混亂,開發量大,功能分支繁多
1 重要分支沒有完全設定分支保護,同事們在重要分支自行解決衝突,不小心將錯誤提交上去,導致環境不可用
2 分支命名五花八門,沒有任何可用資訊
3 合併程式碼後原分支保留,即使狀態為已經合併,管理人員仍是不敢輕易刪除(寧可留著,不可錯刪),導致程式碼庫分支積累過多
4 隨意提交檔案,例如:‘exe’, 我了個擦。。。
於是趁著下班前的功夫簡單寫了份規範文件,暫時用於過度。
2 調整方案
2。1 對於重要的分支,設定為保護型別,禁止直接提交程式碼
2。2 推薦工作流作為參考
1 fork主幹倉庫
2 將開發分支(develop_branch)日常推送到自己倉庫,協同開發可以建立新分支在主倉庫(命名規範)
3 將要向那個環境分支(branch)傳送合併請求,就基於該分支(branch)建立新的合併分支(cherry_username_branch_master)
4 將自己開發的功能分支(develop_branch)合入對應的主幹分支(cherry_username_branch_master),如果發生衝突,就在該分支解決
5 如果各個分支的git歷史記錄一直,可以採用git merge 方式合併,如果不同分支的git歷史差異較大建議採用cherry-pick方式
6 程式碼合併之後,自動刪除請求分支(提交請求時候,勾選刪除原分支)
2。3 命名規範
程式碼開發分支: `feature-{username}-{version}-{storyId}`
請求合併分支: `cherry-{username}-{version}-{storyId}-{master|pre|beta|prod}` 字尾方便程式碼管理人員輔助修正
示例:
1 建立新的開發分支。
命名:feature-zhangsan-5。5-1005568
解釋:類別-使用者-迭代版本-需求id
2 建立請求合併分支
基於test建立請求合併分支,例如:cherry-zhangsan-test,程式碼負責人處理合併請求之後,gitlab自動刪除合併分支。
解釋:
cherry:說明是一個合併分支,用來解決衝突,因為重要分支設定了保護,是沒有直接提交程式碼許可權的
test:說明是向test傳送合併請求。如果已經將請求傳送到錯誤的分支,程式碼負責人在合併程式碼的時候,根據字尾也會及時制止
2。4 常用規範分支命令,個人參考騰訊工蜂
master 主幹分支
feature 新特性開發分支
release 釋出分支,用於預釋出測試或穩定版本釋出
hotfix 用於生產環境緊急bug修復的分支
develop 主開發分支
bugfix 產品bug修復分支
collaboration 多人合作開發分支
pre-production 預釋出環境分支
production 生產環境分支
environment 對應某種軟體部署環境的分支
experimental 用於儲存實驗性程式碼的分支,一般不合入主幹
3 其它
1 對於規範,習慣成自然。合理的規範可以避免不必要的麻煩。
2 規範不是固定的,根據實際情況參考已有經驗,制定符合當前團隊的規範