Git 工作流-基於 x 想 cube 專案實踐

chenshuai發表於2019-04-16

Cube Git flow
參考: http://www.ruanyifeng.com/blog/2012/07/git.html

流程圖

摘要:倉庫中包含以下分支

  • master release 用來發布穩定的生產版本
  • develop 大版本開發
  • feature-* 用於新特性的開發
  • bugfix-* bugfix 用於生產環境緊急bug 的修復

主分支 master
首先,程式碼庫應該有一個、且僅有一個主分支。所有提供給使用者使用的正式版本,都在這個主分支上釋出。

master 是受保護的分支,從develop bugfix- feature- 需要發起Merge Request 進行過Code review 之後才能合併到主分支。

開發分支 develop
日常開發應該在另一條分支上完成,我們把開發用的分支,叫做Develop。

develop 是受保護分支,需要發起Merge Request 進行Code review 之後才能合併

如果想正式對外發布,就在Master分支上,對Develop分支進行"合併"(merge)。

開發分支的push 動作會觸發Gitlab CI 編譯部署。
對應公眾號:魔方測試,測試網址:http://devcube.lenovo.com.cn

功能分支 feature-*
這一種是功能分支,它是為了開發某種特定功能,從Develop分支上面分出來的。開發完成後,要再併入Develop。

功能分支的名字,可以採用feature-*的形式命名。

git checkout -b feature-x develop

git checkout develop
git merge --no-ff feature-x

git branch -d feature-x
修補分支 bugfix-*
最後一種是修補bug分支。軟體正式釋出以後,難免會出現bug。這時就需要建立一個分支,進行bug修補。

修補bug分支是從Master分支上面分出來的。修補結束以後,再合併進Master和Develop分支。它的命名,可以採用bugfix-*的形式。

修復分支提測,Merge Request 到 bugfix 上。

git checkout -b bugfix-jira2018 master

bugfix 是受保護分支,需要發起Merge Request 進行Code review 之後才能合併
bugfix 會觸發Gitlab CI 編譯部署。
對應公眾號:24小時,測試網址:http://testcube.lenovo.com.cn

何時做Code Review ?
在向develop bugfix master 提交Merge Request 的時候做Code review,在存在以下問題時會拒絕合併並且給出修改意見:

程式碼不符合約定的規範
程式碼有更好的實現方式
邊界條件錯誤
Git hook
前端eslint 程式碼規範檢測
git commit 規範檢測
在Cube 專案,寫好關鍵字和簡短描述,請勿提交無實際內容的commit msg
簡化為

(): 關於git commit 規範檢測,參考文件如下: - http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html - https://zhuanlan.zhihu.com/p/34223150

Commit Message 格式

目前規範使用較多的是 Angular 團隊的規範, 繼而衍生了 Conventional Commits specification. 很多工具也是基於此規範, 它的 message 格式如下:

(): 標題行: 必填, 描述主要修改型別和內容 主題內容: 描述為什麼修改, 做了什麼樣的修改, 以及開發的思路等等 頁尾註釋: 放 Breaking Changes 或 Closed Issues type: commit 的型別 feat: 新特性 fix: 修改問題 refactor: 程式碼重構 docs: 文件修改 style: 程式碼格式修改, 注意不是 css 修改 test: 測試用例修改 chore: 其他修改, 比如構建流程, 依賴管理. scope: commit 影響的範圍, 比如: route, component, utils, build... subject: commit 的概述, 建議符合 50/72 formatting body: commit 具體修改內容, 可以分為多行, 建議符合 50/72 formatting footer: 一些備註, 通常是 BREAKING CHANGE 或修復的 bug 的連結. 這樣一個符合規範的 commit message, 就好像是一份郵件.

轉:https://www.zybuluo.com/wh8766/note/1382672

陳帥同學

相關文章