導(dǎo)讀
為了避免歧義揭朝,文檔大量使用了「能愿動詞」,對應(yīng)的解釋如下:
- 必須(Must) - 只能這樣子做色冀,請無條件遵循潭袱,沒有別的選項(xiàng);
- 絕不(Must Not)- 嚴(yán)令禁止锋恬,在任何情況下都不能這樣做屯换;
- 應(yīng)該(Should) - 強(qiáng)烈建議這樣做,但是不強(qiáng)求与学;
- 不應(yīng)該(Should Not) - 強(qiáng)烈建議不這樣做彤悔,但是不強(qiáng)求;
- 可以(May) - 選擇性高一點(diǎn)
參考:RFC 2119
branch
長期分支
master —— 主分支索守,同時(shí)也必須是線上最新代碼的分支晕窑。
dev —— 開發(fā)人員的基礎(chǔ)分支,所有的開發(fā)功能分支(feat)都必須從dev分支上進(jìn)行拉取卵佛,同時(shí)也要合并到dev分支杨赤。
test —— 測試分支敞斋,應(yīng)該將dev分支合并到測試分支,進(jìn)行功能的測試疾牲,如果沒有問題植捎,再將test分支合并到master上,進(jìn)行新功能的上線说敏。
短期分支
- hotfixes —— 緊急分支鸥跟,用于修改master分支上的錯(cuò)誤,修改后必須將此分支合并到master和dev分支盔沫。
- feature —— 功能分支医咨,功能分支必須從dev分支切出,完成后提交pr架诞,review后必須合并到dev拟淮。
- fix —— bug分支,用與修改非生產(chǎn)環(huán)境出現(xiàn)的bug谴忧。
分支規(guī)范
feature分支
feature分支命名必須遵循feature-{yourname}/{featurename}
hotfixes分支
hotfixes分支命名必須遵循h(huán)otfix-{yourname}/{hotfixname}
fix分支
fix分支命名必須遵循fix-{yourname}/{fixname}#{issuse}
*注:
- yourname —— 姓名
- featurename —— 功能分支名
- hotfixes —— 緊急分支名
- fix —— bug分支名
commit
commit分類
- feat —— 功能很泊,feat: 添加登陸功能
- fix —— bug,fix: 修改登錄接口錯(cuò)誤
- hotfix —— 緊急沾谓,hotfix: 修改生產(chǎn)環(huán)境登錄接口錯(cuò)誤
- docs —— 文檔委造,docs: 修改README
- style —— 不影響代碼含義的更改(空格、格式均驶、缺少分號等)style: 刪除空格昏兆,刪除console
- perf —— 提高性能的代碼更改 perf: 優(yōu)化打包后的文件大小
- test —— 添加缺失測試或糾正現(xiàn)有測試 test: 添加對什么方法為0的單元測試
- build —— 影響生成系統(tǒng)或外部依賴項(xiàng)的更改(示例范圍:gulp、broccoli妇穴、npm)build: 修改webpack打包配置 / build: 添加js-cookies包
- ci —— 對CI配置文件和腳本的更改 ci: 修改xxx.yaml文件
- chore —— 其他不修改src或測試文件的更改爬虱,如在根目錄下的其他文件 chore: 修改時(shí)間格式化函數(shù)
- refactor —— 既不修復(fù)錯(cuò)誤也不添加功能的代碼更改 refactor: 添加.gitignore
- revert —— 還原以前的提交 revert: #62
pull request
- pr必須提交到dev分支,并由組長或項(xiàng)目管理人員進(jìn)行review后沒有問題進(jìn)行合并
- pr遇到?jīng)_突時(shí)腾它,必須應(yīng)該自己解決
- pr可以簡述功能信息
merge
-
dev分支
代碼通過提交pr(同時(shí)寫明信息)后跑筝,必須有至少一個(gè)人進(jìn)行review,review后沒有問題可以合并到dev分支
-
hotfix分支
代碼應(yīng)從master分支切出瞒滴,修改完成后必須提交兩個(gè)pr分別到master和dev曲梗,在reviewer審查沒問題后合并到master和dev
-
fix分支
代碼從dev分支切出,在修改完成后必須提交pr(同時(shí)寫明信息)后妓忍,在reviewer審查沒問題后合并到dev
-
feat分支
代碼從dev分支切出虏两,在功能完成后必須提交pr(同時(shí)寫明信息)后,在reviewer審查沒問題后合并到dev
-
test分支
代碼必須從dev分支合并進(jìn)來
tag
格式:vx.y.z单默,如v1.0.0碘举。其中x代表主版本號,y代表次版本號搁廓,z代表補(bǔ)丁號
如果只修改了bug則對z進(jìn)行加一
新增功能引颈,向下兼容耕皮,沒有刪除功能對y進(jìn)行加一
不向下兼容,刪除功能對x進(jìn)行加一
-
master分支
master分支在每次更新生產(chǎn)環(huán)境時(shí)必須打tag蝙场,同時(shí)也可以標(biāo)注出基本信息
注意事項(xiàng)
- 絕不能直接提交代碼到master凌停,dev,test分支
- 必須有一個(gè)reviewer
- 合并到master和test應(yīng)由reviewer進(jìn)行
- 除master售滤,dev罚拟,test分支,其他所有分支應(yīng)該在使用完成后進(jìn)行銷毀刪除