在提 issue 前请确保满足一下条件:
- 必须是一个 bug 或者功能新增。
- 已经在 issue 中搜索过,并且没有找到相似的 issue 或者解决方案。
我们除了希望听到您的反馈和建议外,我们也希望您接受代码形式的直接帮助,对我们的 GitHub 发出 pull request 请求。
以下是具体步骤:
点击 Fork
按钮,将需要参与的项目仓库 fork 到自己的 Github 中。
在自己的 github 中,找到 fork 下来的项目,git clone 到本地。
$ git clone [email protected]:<yourname>/tmagic-editor.git
将 fork 源仓库连接到本地仓库:
$ git remote add <name> <url>
# 例如:
$ git remote add tmagic [email protected]:Tencent/tmagic-editor.git
更新上游仓库:
$ git pull --rebase <name> <branch>
# 等同于以下两条命令
$ git fetch <name> <branch>
$ git rebase <name>/<branch>
对于如何提交 git commit message,我们有非常精确的规则。我们希望所有的 commit message 更具可读性,这样在查看项目历史记录会变得容易,同时我们使用 commit message 生成 Changelog.
本项目使用了 @commitlint
作为 commit lint 工具,并使用 @commitlint/config-angular
作为基础规则,请使用下面任意一种方式提交你的 commit.
- 全局安装
npm install -g commitizen
,然后使用cz
提交 - 使用
git commit -a
提交,请注意 message 符合我们的要求
每个 commit message 包括 header, body 和 footer.
header 具有特殊的格式,包括 type, scope 和 subject, type 和 subject 是必须的,scope 是可选的。
<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
提交 message 的任何行不能超过 100 个字符!确保 message 在 GitHub 以及各种 git 工具中更易于阅读。
注脚应该包含 closing reference to an issue 如果有的话.
示例:
docs(changelog): update change log to beta.5
fix(editor): resize error
Component doesn't refresh when resize it.
fix #123
必须是以下选项之一:
- feat: 一个新特性
- fix: 一次 bug 修复
- docs: 只是对文档进行修改
- style: 不影响代码本身含义的代码风格修改
- refactor: 既不属于新特性又不是 bug 修改的代码修改
- perf: 性能优化
- test: 添加或修改测试用例
- build: 修改构建工具
- ci: 修改自动化脚本
- revert: 回滚提交
Scope 应该是本次修改所影响模块的名称(文件夹名称或其他有意义的单词)。
<prefix:name>
<prefix:name1,name2>
其他情况可以忽略 scope:
- 使用
docs
,build
或ci
等全局修改(例如:docs: add missing type
).
Subject 是本次修改的简洁描述:
- 使用祈使句、现在时,例如:使用 "change" 而不是 "changed"、"changes"
- 不大写第一个字母
- 不以小数点(.)结尾
Body 应包含修改的动机,并对比这与以前的行为,是本次修改的详细描述:
- 使用祈使句、现在时,例如:使用 "change" 而不是 "changed"、"changes"
Footer 应包含 Breaking Changes 和关闭或关联的 Issues
- Breaking Changes 应该以
BREAKING CHANGE:
开头 - 关闭或关联的 Issues 使用
fix #123
或者re #123