1. 程式人生 > >git分支管理及git commit message規範

git分支管理及git commit message規範

分支管理

manage-flow

如圖所示: master分支只用於存放線上版本 線上緊急bug,使用hot-fix分支 開發在dev分支上,小的測試bug也可在dev分支修改。線上緊急修復bug也需合併到dev分支 開發複雜的新功能可新建分支dev-${devName}

Git Commit message 規範

使用Angular的Commit message 格式

commit message 格式

每個commitm message 包括header,body和footer,各佔一行,每行不超過100字元。其中header由type、scope和subject組成。header必須要寫

,header的scope是可選的。

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
複製程式碼

Revert

如果commit用於撤銷之前的commit,需以revert:開頭,接著寫被撤銷的commit的header。body裡要寫:this reverts commit . ,hash為被撤銷的commit的hash值。這種格式也可以由git revert命令自動生成。

Type

必須為下列之一:

  • feat:新功能(feature)
  • fix:修補bug
  • docs:文件修改
  • style: 不影響程式碼含義的修改(例如:white-space; 格式化等)
  • refactor:重構(即不是新增功能,也不是修改bug的程式碼變動)
  • perf: 提升效能的修改
  • test:增加或修改測試
  • chore:構建流程或輔助工具的變動

Scope

scope用於說明commit修改的範圍,比如資料層、控制層、檢視層,route, component, utils, build等等。如果修改影響多處,可使用"*"。

Subject

Subject是對修改的簡要說明:

  • 使用祈使語氣,一般現在時。
  • 首字母小寫
  • 句末不要使用句號

Body

使用祈使語氣,一般現在時。另外,body需要包含修改的原因和與之前版本的區別。

Footer

任何Breaking changes的資訊或者關閉issue的資訊都可寫在Footer. Breaking changes需要以**BREAKING CHANGE: **開頭。

standard version

自動生成CHANGELOG.md

執行npm run release會自動生成CHANGELOG.md,並生成一個commit記錄和tag一個新的釋出。

首次釋出

只需執行

npm run release -- --first-release
複製程式碼

這會生成一個釋出tag,但不會在package.json中修改版本。

釋出一個pre-release

使用--prerelease來生成預釋出: 假設當前版本是1.0.0,且將要commit的程式碼為打補丁的修改。執行:

npm run release -- --prerelease
複製程式碼

將生成版本號1.0.1-0。 如果想指定預釋出版本名字可以通過--rerelease <name>。 例如:

npm run release -- --prerelease alpha
複製程式碼

這個tag將是1.0.1-alpha.0

釋出指定的型別

使用--release-as 加引數major或minor或patch可以取消自動生成版本號。 假設當前版本為1.0.0.執行

//  npm run script
npm run release -- --release-as minor
//  Or
npm run release -- --release-as 1.1.0
複製程式碼

將生成版本號1.1.0,而不是自動生成的版本號1.0.1