Git 协作
分支命名
| 类型 | 命名 |
|---|---|
| 上线 | master |
| 开发 | dev |
| 功能 | feat/[姓名]/[时间]/[补充名] |
| 修复 | fix/[姓名]/[时间]/[补充名] |
| rebase | rebase/[其他分支名称] 或者 rebase/[姓名]/[时间]/[补充名] |
补充名
补充名为可选,名称为标识作用,如 spring32
姓名格式
姓名声母小写,例 张三 => zhs
时间格式
年份后两位+日+月,日月不足两位补全两位,例 211202。
注意
feat分支时间使用迭代周期开始时间。fix分支使用当前时间。
假设 迭代:【211213-211224 期】; 当前时间为:211220 ; 开发人为张三;
分支名称示例:feat/zhs/211213,fix/zhs/211220
rebase分支命名注意事项rebase的分支打算合并到master分支发布版本时: 使用rebase/[姓名]/[时间]/[补充名]格式命名,时间为迭代开始时间,例rebase/zhs/211213其他分支 rebase 时:使用
rebase/[其他分支名称]格式命名,例rebase/dev,rebase/feat/zhs/211213,rebase-fix-zhs-211220
工作流程

Commit Message 规范
消息格式
消息必须匹配以下正则表达式:
/^(revert: )?(feat|fix|docs|dx|refactor|perf|test|workflow|build|ci|chore|types|wip|release|deps)(\(.+\))?: .{1,50}/示例
出现在Features标题下,dev子标题下:
feat(dev): add 'comments' option出现在Bug Fixes标题下,dev子标题下,带有禅道问题#28 的链接:
fix(dev): fix dev error
close #28出现在“性能改进”标题下,并在“重大更改”下给出重大更改解释:
perf(build): remove 'foo' option
BREAKING CHANGE: The 'foo' option has been removed.以下提交和667ecc1不会出现在更改日志中,如果它们是在同一个版本下。如果没有,恢复提交将出现在revert标头下。
revert: feat(compiler): add 'comments' option
This reverts commit 667ecc1654a317a13331b17617d973392f415f02.完整的消息格式
一个提交消息包括一个header,body和footer。头文件有type,scope和subject:
<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>header 是必须的, scope 是可选的
Revert
如果提交恢复了之前的提交,它应该以 revert:开头,后面跟着被恢复的提交的头部。在 body 中,它应该说: This revert commit <hash>。其中的哈希值是被还原的提交的哈希。
Type
如果前缀是feat, fix或perf,它将出现在 changelog 中。然而,如果有任何BREAKING CHANGE,提交将始终出现在 changelog 中。
其他前缀由您自行决定。建议使用docs、chore、style、refactor和test作为非变更日志相关任务的前缀。
Scope
范围可以是任何指定提交更改位置的内容。例如 dev, build, workflow, cli 等等...
Subject
主题包含了对变化的简要描述:
- 使用祈使句,现在时: "change"而不是"changed"或"changes"
- 不要把第一个字母大写
- 末尾没有点(.)
Body
和 subject 一样, 使用祈使句,现在时: "change"而不是"changed"或"changes",
正文应该包括改变的动机,并将其与之前的行为进行对比。
如果上线rebase分支提交信息,需要包含迭代周期信息。如下:
release: 1.0.1
【211213-211220】期:
- feat: xxx
- fix: xxxFooter
页脚应该包含任何关于BREAKING CHANGE的信息,或者是写关于禅道问题关闭的地方。
Breaking Changes 应该以 BREAKING CHANGE: + 一个空格 + 两个换行开头,其余和完整消息格式一致。
版本号
格式
[主版本号].[副版本号].[修复版本号]
例如: 1.0.1
规则
- 巨大改动,主版本号 +1
- 功能迭代,副版本号 +1
- 修复问题,修复版本号 +1
注意
每次发布上线,只能更改其中一个版本号, 某个版本号变动后,其后边的版本号归零。
如当前版本为1.0.1,进行了一次功能迭代,版本号变动为1.1.0