当前位置: 首页 > Web前端 > HTML5

Commitmessage代码提交规范

时间:2023-04-05 13:09:33 HTML5

Commitmessage代码提交规范**前言**在多人协作的项目中,如果代码风格统一,代码提交信息描述准确,后面会更方便协作和错误处理。Git每次提交代码,都必须写Commitmessage(提交说明),否则不允许提交。一般来说,commitmessage应该清晰明了,说明本次commit的目的。Commitmessage的作用●提供更多的历史信息,方便快速浏览●过滤一些commit(比如文档变更),快速查找信息●直接从commit生成Changelog●可读性和清晰度好,无需深究代码你可以了解当前提交的作用。●PrepareforCodeReviewing(代码审查)●方便跟踪项目历史●提高项目的整体质量和提高个别项目的质量Commitmessage格式Commitmessage包括三部分:Header,Body和Footer()://空行//空行

1.HeaderHeader只有一行,包括三个字段:type(必填)、scope(可选)和subject(必填)(1)typetype用于描述commit的类型,只允许后面的标识输入,逗号等,不改变代码逻辑重构:refactoring(即不是新功能,也不是代码改动tomodifyabug)test:添加测试,包括单元测试、集成测试等。chore:构建过程中的变更或辅助工具type:表示提交的类型,比如修复bug或添加新功能。perf:与优化相关,比如提升性能和体验revert:回滚到上一个版本ci:自动修改流程配置注意:如果type是feat和fix,commit肯定会出现在Changelog(2)scopeis用于说明commit影响的范围,如数据层、控制层、视图层等,视项目而定。(3)subject①subject是对commit目的的简要描述,不超过50个字符。②以动词开头,使用第一人称现在时,如change、notchanged或changes③首字母小写④末尾不要加句号(.)2.BodyBody部分是对本次commit的详细描述,其中可以分为三行,FooterFooter部分只在两种情况下使用:(1)Incompatiblechanges如果当前代码与之前的版本不兼容,Footer部分以BREAKINGCHANGE开头,后面是对变化的描述,更改的原因和迁移方法BREAKINGCHANGE:isolatescopebindings定义已更改。要迁移代码,请遵循以下示例:Before:scope:{myAttr:'attribute',}After:scope:{myAttr:'@',}删除的`inject`通常对指令没有用,因此应该没有代码使用它。(2)关闭Issue如果当前commit是针对一个issue,可以在Footer部分关闭这个issue。closes#234也可以关闭多个issueCloses#123,#245,#992四、Revert如果当前commit用于撤销之前的commit,则必须以revert:开头,后面是被撤销的Commit的Headerrevert:feat(pencil):添加'graphiteWidth'选项这将还原提交667ecc1654a317a13331b17617d973392f415f02。①Body部分的格式是固定的,必须写成Thisrevertscommit.,其中hash是revokedcommit的SHA标识。②如果当前commit和revokedcommit在同一个release(发布)中,则不会出现在Changelog中。如果两者在不同的版本中,则当前提交将出现在Changelog的Reverts副标题下。提交消息工具Comitizen是一个用于格式化提交消息的工具。**使用**1。在cmd中通过npm进行全局安装:npminstall-gcommitizen2。在项目目录npminit3中创建一个package.json文件。打开项目,执行如下命令:commitizeninitcz-conventional-changelog--save--save-exact注意:如果是第二种配置,需要使用–force:commitizeninitcz-conventional-changelog--save--force4.将所有修改提交到暂存区gitadd.①gitadd。:他会监控工作区的状态树,并用它来提交工作过程中的所有变化到暂存区,包括文件内容修改(modified)和新文件(new),但不包括删除的文件。②gitadd-u:他只监控已经添加的文件(也就是跟踪文件),他会把修改过的文件提交到暂存区(gitadd--update的缩写)。add-u不会提交新文件。③gitadd-a:是以上两个功能的集合(gitadd--all的缩写)5、在命令行输入提交命令gitcz,输入命令后依次提示:①上下键选择要提交的更改类型②此更改的范围是什么(例如组件或文件名)?(按回车键跳过)③写一个简短的祈使句来描述变化④提供更详细的变化描述:(按回车键跳过)⑤什么是重大变化?⑥这个变化会影响任何未解决的问题吗?6.然后推送到本地git仓库gitpush注意:①代码需要测试,测试OK。如果一次性测试通过,可以把masterMerge到自己的分支,然后push自己的branch,进行测试②代码测试,如果有问题,修正问题,然后push自己的branch打印日志命令gitlog1。输出CHANGELOG记录,(文件名自己设置),通过以下命令在项目中生成CHANGELOG.md文件①安装生成Changelog的工具$npminstall-gconventional-changelog-cli②生成CHANGELOG.md通过提交记录$conventional-changelog-p-iCHANGELOG.md-s2。打印出gitlog的日志记录(详细的日志记录)gitlog>文件名例如:gitlog>1.txt可以在项目路径下查看1.txt。日志记录文件的type类型可以自行配置。配置修改,项目路径下的node_modulesconventional-commit-typesindex.json

猜你喜欢