APIJSON/CONTRIBUTING_COMMIT.md
2020-11-04 18:02:12 +08:00

103 lines
2.6 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Commit 规范
在对项目作出更改后,我们需要生成 Commit 来记录自己的更改。以下是参照 Angular 对 Commit 格式的规范:
## (1) 格式
提交信息包括三个部分:`Header``Body` 和 `Footer`
```
<Header>
<Body>
<Footer>
```
其中Header 是必需的Body 和 Footer 可以省略。
#### 1> Header
Header 部分只有一行,包括俩个字段:`type`(必需)和`subject`(必需)。
```
<type>: <subject>
```
**Type**
Type 用于说明 Commit 的类别,可以使用如下类别:
- feat新功能Feature
- fix修补 Bug
- doc文档Documentation
- style 格式(不影响代码运行的变动)
- refactor重构即不是新增功能也不是修改 Bug 的代码变动)
- test增加测试
- chore构建过程或辅助工具的变动
**Subject**
Subject 是 Commit 目的的简短描述。
- 以动词开头,使用第一人称现在时,比如改变,而不是改变了。
- 结尾不加句号(。)
#### 2> Body
Body 部分是对本次 Commit 的详细描述,可以分成多行。下面是一个范例。
```
More detailed explanatory text, if necessary. Wrap it to
about 72 characters or so.
Further paragraphs come after blank lines.
- Bullet points are okay, too
- Use a hanging indent
```
**注意:**应该说明代码变动的动机,以及与以前行为的对比。
#### 3> Footer
Footer 部分应该包含:(1)Breaking Changes; (2)关闭 Issue
**Breaking Changes**
如果当前代码与上一个版本不兼容,则 Footer 部分以`BREAKING CHANGE`开头,后面是对变动的描述、以及变动理由和迁移方法。这种使用较少,了解即可。
**Issue 部分:**
- 通过 Commit 关联 Issue
如果当前提交信息关联了某个 Issue那么可以在 Footer 部分关联这个 Issue
```
issue #2
```
- 通过 Commit 关闭 Issue当提交到**默认分支**时,提交信息里可以使用 `fix/fixes/fixed`  `close/closes/closed` 或者 `resolve/resolves/resolved`等关键词,后面再跟上 Issue 号,这样就会关闭这个 Issue
```
closes #1
```
注意,如果不是提交到默认分支,那么并不能关闭这个 Issue但是在这个 Issue 下面会显示相关的信息表示曾经想要关闭这个 Issue当这个分支合并到默认分支时就可以关闭这个 Issue 了。
#### 4> 例子
下面是一个完整的例子:
```
feat: 添加了分享功能
给每篇文章添加了分享功能
- 添加分享到微信功能
- 添加分享到朋友圈功能
issue #1, #2
closes #1
```