You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# head: <type>(<scope>): <subject>
# - type: feat, fix, docs, style, refactor, test, chore
# - scope: can be empty (eg. if the change is a global or difficult to assign to a single component)
# - subject: start with verb (such as 'change'), 50-character line
#
# body: 72-character wrapped. This should answer:
# * Why was this change necessary?
# * How does it address the problem?
# * Are there any side effects?
#
# footer:
# - Include a link to the ticket, if any.
# - BREAKING CHANGE
#
本文主要梳理:
-
git工作流
-
git commit msg
-
git changelog
-
git lint / hook
常用工具:
commitizen/cz-cli
commitizen/cz-conventional-changelog
conventional-changelog/standard-version
marionebl/commitlint
git 工作流
Pull Request 要解决的问题是防止远程分支过多造成混乱,这样由每个开发人员建立自己的一个版本库,在自己的版本库建分支操作,然后往产品生产版本库发起一个 Pull 请求,同时,又要不断的跟远程的产品版本库同步保持一致, 对于开源项目来说,组织松散,Pull Request 是个非常好的方式
有 master-dev 分支,比较大的功能才会新开 branch,小功能都是直接到 dev 上的,再加上团队在一起开发所以固定时间看昨日的代码,效果还不错。我们同样没有 QA,自己做的 ticket 也会找对方来做测试,但多是功能的完整性上的测试了。
每个开发人员一个 git 分支,基本上工作不会互相打扰。我们的分支策略是,对于新功能,从主干开一个功能分支,然后每个开发在功能分支上开个人分支。合并时,先 BI(Backward Integration),,再 FI(Forward Integration)。每周四定期合并,合并时 review。之所以放在周四,是因为如果合并出错,周五还有时间修复。
Commit Message 格式
msg格式:
1. type: commit 的类型
2. scope: commit 影响的范围, 比如: route, component, utils, build...
3. subject: commit 的概述, 建议符合 50/72 formatting
4. body: commit 具体修改内容, 可以分为多行, 建议符合 50/72 formatting
5. footer: 一些备注, 通常是 BREAKING CHANGE 或修复的 bug 的链接
Closes #234
6. Revert: 有一种特殊情况,如果当前 commit 用于撤销以前的 commit,则必须以revert:开头,后面跟着被撤销 Commit 的 Header。
一个符合规范的 commit message就是一篇简短的论文,告诉别人你干了什么。
git commit 模板
修改 ~/.gitconfig, 添加
新建 ~/.gitmessage 内容可以如下:
npm install -g commitizen cz-conventional-changelog
Change log生成
如果你的所有 Commit 都符合 Angular 格式,那么发布新版本时, Change log 就可以用脚本自动生成。
conventional-changelog 就是生成 Change log 的工具
几个工具简介
结合 git hook, 提前跑过各种lint后再提交
参考
The text was updated successfully, but these errors were encountered: