当前位置:首页 » 《关于电脑》 » 正文

如何校验 commit message 是否符合规范,这有四种方式

17 人参与  2024年09月15日 14:01  分类 : 《关于电脑》  评论

点击全文阅读


你好同学,我是沐爸,欢迎点赞、收藏、评论和关注!

Git Commit 规范是什么?

Git Commit 规范常常参考 Angular 社区提交规范,该规范规定 message 的提交须符合一定的格式,即:<type>: <subject>,type 为 commit 类别,subject 为简短描述。注意:冒号后面有空格,结尾不加句号(.)

type 只允许使用下面7个标识:

feat:新功能(feature)fix:修补bugdocs:文档(documentation)style: 格式(不影响代码运行的变动)refactor:重构(即不是新增功能,也不是修改bug的代码变动)test:增加测试chore:构建过程或辅助工具的变动

校验 Commit Message 的四种方式

如何规定统一的 commit message 格式?以下有四种方式:

第一种:后台设置

后台设置后,每次执行 git push 推送代码时,如果 commit message 不符合规范,则会报错。

1.码云 Gitee 后台设置:

2.Gitlab 设置:

第二种:手动修改.git中的hooks

将代码 clone 到本地后,将 .git/hooks 中的 commit-msg.sample 文件改为 commit-msg,然后配置以下内容:

#!/bin/sh # 检查commit message是否符合规定的格式 # 提供commit-msg文件的路径作为参数COMMIT_MSG_FILE=$1 # 定义commit message的正则表达式规则COMMIT_MSG_PATTERN="^(feat|fix|docs|style|refactor|test|chore|ci)(\(.+\))?: .{1,100}" # 读取commit message文件的内容COMMIT_MSG=$(cat "$COMMIT_MSG_FILE") # 使用正则表达式匹配commit messageif ! echo "$COMMIT_MSG" | grep -E -q "$COMMIT_MSG_PATTERN"; then  echo "-------------------------------------------------------------------"  echo "提交失败!commit message 不符合规范,请修改后重试"  echo "请遵循格式:^(feat|fix|docs|style|refactor|test|chore|ci)(\(.+\))?: .{1,100}"  echo "-------------------------------------------------------------------"  exit 1fi # 如果commit message符合规定的格式,脚本返回0作为成功的退出码exit 0

当然,正则和错误提示可以自定义。注意:因为 commit-msg 文件并不会提交,所以这种方式只会影响你自己本地仓库。

第三种:husky 结合 git hooks

Git Hooks,即Git 钩子,每个钩子对应一个 Git 操作,比如git commit、git push。husky 是 git hooks 工具,用于在 Git 操作前自动运行脚本,比如代码格式化。这有助于保持代码风格的一致性,提高代码的质量和可维护性。

安装 husky

npm i husky -D

初始化 husky

npx husky-init

初始化后会在根目录下生成个一个 .husky 目录,目录下有个 pre-commit 文件,文件中的命令会在 git commit 时执行。

生成hook commit-msg

npx husky add .husky/commit-msg

提示:add 命令已被禁用,运行以上命令可能会提示“add command is DEPRECATED”。解决方法是,可以将 .husky/_ 目录中的 commit-msg 文件拷贝到 .husky 目录下,将第二种方法中的 commit-msg 配置拷贝并粘贴到 .husky/commit-msg 文件的最下方。

将第二种方法中的 commit-msg 配置拷贝并粘贴到 husky/commit-msg 文件的最下方。

到这里就完成了,就是这么简单。

第四种:husky + commitlit

这种方式网上讲的很多,个人觉得过于复杂,可自行百度。

四种方式都告诉你了,赶快动手试试吧!Git Commit 具有的意义也要抽空看看哦,因为很有意义!

Git Commit 规范的意义

Git Commit 规范在软件开发中具有重要意义,主要体现在以下几个方面:

1.提高代码的可读性和可维护性

清晰的提交信息:书写良好的 commit message 能够清晰地说明每次提交的目的和所做的更改,使其他开发同学更容易理解代码的历史和变更。一致的格式:通过规定统一的 commit message 格式,可以确保所有开发同学遵循相同的规范,从而保持代码库的一致性。

2.便于团队协作

减少沟通成本:清晰的 commit 历史记录可以减少团队成员之间的沟通成本,因为大家都可以通过查看 commit message 来了解代码的变化情况。提高协作效率:当团队成员需要回溯或理解某个特定功能的实现时,规范的 commit message 能够提供有价值的线索和参考。

3.便于版本控制和问题追踪

回溯和回滚:规范的 commit message 使得回溯和回滚变得更加容易,开发同学可以更快地找到特定的提交并恢复或撤销更改。问题追踪:在出现bug或问题时,规范的 commit message 可以帮助开发同学快速定位问题的引入点,从而更有效地进行修复。

4.支持自动化工具

Chnage Log 生成:格式化的 commit message 可以自动化输出 Change Log,帮助团队记录项目的版本更新和变更历史。版本发布:一些自动化工具(如代码生成、版本发布等)可以根据规范化地 commit 信息来执行特定操作,提高工作效率。

5.提升代码质量

规范约束:通过引入 Git Commit 规范,可以约束开发同学的提交行为,减少随意性和不规范性,从而提升代码的整体质量。促进良好的编程习惯:遵循 Git Commit 规范可以培养开发同学良好的编码习惯,包括审慎地进行每次提交、注重代码的可读性和可维护性等。

好了,分享结束,谢谢点赞,下期再见。


点击全文阅读


本文链接:http://zhangshiyu.com/post/160336.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1