Skip to content

Git 协作

分支命名

类型命名
上线master
开发dev
功能feat/[姓名]/[时间]/[补充名]
修复fix/[姓名]/[时间]/[补充名]
rebaserebase/[其他分支名称] 或者 rebase/[姓名]/[时间]/[补充名]

补充名

补充名为可选,名称为标识作用,如 spring32

姓名格式

姓名声母小写,例 张三 => zhs

时间格式

年份后两位+日+月,日月不足两位补全两位,例 211202

注意

  1. feat分支时间使用迭代周期开始时间。

  2. fix分支使用当前时间。

假设 迭代:【211213-211224 期】; 当前时间为:211220 ; 开发人为张三;

分支名称示例:feat/zhs/211213,fix/zhs/211220

  1. rebase分支命名注意事项

    • rebase的分支打算合并到master分支发布版本时: 使用rebase/[姓名]/[时间]/[补充名]格式命名,时间为迭代开始时间,例rebase/zhs/211213

    • 其他分支 rebase 时:使用rebase/[其他分支名称]格式命名,例rebase/dev,rebase/feat/zhs/211213,rebase-fix-zhs-211220

工作流程

Commit Message 规范

消息格式

消息必须匹配以下正则表达式:

js
/^(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.

完整的消息格式

一个提交消息包括一个headerbodyfooter。头文件有typescopesubject:

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>

header 是必须的, scope 是可选的

Revert

如果提交恢复了之前的提交,它应该以 revert:开头,后面跟着被恢复的提交的头部。在 body 中,它应该说: This revert commit <hash>。其中的哈希值是被还原的提交的哈希。

Type

如果前缀是featfixperf,它将出现在 changelog 中。然而,如果有任何BREAKING CHANGE,提交将始终出现在 changelog 中。

其他前缀由您自行决定。建议使用docschorestylerefactortest作为非变更日志相关任务的前缀。

Scope

范围可以是任何指定提交更改位置的内容。例如 dev, build, workflow, cli 等等...

Subject

主题包含了对变化的简要描述:

  • 使用祈使句,现在时: "change"而不是"changed"或"changes"
  • 不要把第一个字母大写
  • 末尾没有点(.)

Body

subject 一样, 使用祈使句,现在时: "change"而不是"changed"或"changes",

正文应该包括改变的动机,并将其与之前的行为进行对比。

如果上线rebase分支提交信息,需要包含迭代周期信息。如下:

release: 1.0.1

【211213-211220】期:
- feat: xxx
- fix: xxx

页脚应该包含任何关于BREAKING CHANGE的信息,或者是写关于禅道问题关闭的地方。

Breaking Changes 应该以 BREAKING CHANGE: + 一个空格 + 两个换行开头,其余和完整消息格式一致。

版本号

格式

[主版本号].[副版本号].[修复版本号]

例如: 1.0.1

规则

  • 巨大改动,主版本号 +1
  • 功能迭代,副版本号 +1
  • 修复问题,修复版本号 +1

注意

每次发布上线,只能更改其中一个版本号, 某个版本号变动后,其后边的版本号归零。

如当前版本为1.0.1,进行了一次功能迭代,版本号变动为1.1.0