ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] > [参考](https://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html) ## 作用 1 .提供更多的历史信息 ``` > git log --pretty=format:%s [撤销]组织架构兼容金仓的null模式 [修复]消息管理器的兼容金仓 ``` 2. 可以过滤某些commit ``` git log <last release> HEAD --grep feature ``` 3. 可以直接从commit生成Change log ## 格式 格式: ``` <type>(<scope>): <subject> // 空一行 <body> // 空一行 <footer> ``` - Header 是必需的,Body 和 Footer 可以省略 - 任何一行都不得超过72个字符 ### type ``` build 对构建系统或者外部依赖项进行了修改 ci 对CI配置文件或脚本进行了修改 docs 对文档进行了修改 feat 增加新的特征 fix 修复bug pref 提高性能的代码更改 refactor 既不是修复bug也不是添加特征的代码重构 style 不影响代码含义的修改,比如空格、格式化、缺失的分号等 test 增加确实的测试或者矫正已存在的测试 ``` > 如果`type`为`feat`和`fix`,则该 commit 将肯定出现在 Change log 之中。 > 其他情况(`docs`、`chore`、`style`、`refactor`、`test`)由你决定,要不要放入 Change log,建议是不要 ### scope - scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同 ### subject - subject是 commit 目的的简短描述,不超过50个字符。 - 以动词开头,使用第一人称现在时,比如change,而不是changed或changes - 第一个字母小写 - 结尾不加句号 ### 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 ``` 有两个注意点。 - 使用第一人称现在时,比如使用change而不是changed或changes。 - 应该说明代码变动的动机,以及与以前行为的对比 ### Footer 1. 不兼容变动 如果当前代码与上一个版本不兼容,则 Footer 部分以`BREAKING CHANGE`开头,后面是对变动的描述、以及变动理由和迁移方法 1. 关闭 Issue ``` Closes #234 //关闭多个 Closes #123, #245, #992 ``` ### Revert 如果当前 commit 用于撤销以前的 commit,则必须以`revert:`开头,后面跟着被撤销 Commit 的 Header ``` revert: feat(pencil): add 'graphiteWidth' option This reverts commit 667ecc1654a317a13331b17617d973392f415f02. ``` - Body部分的格式是固定的,必须写成`This reverts commit &lt;hash>.`,其中的`hash`是被撤销 commit 的 SHA 标识符 ## idea 插件 使用 [Git Commit message Helper](https://plugins.jetbrains.com/plugin/13477-git-commit-message-helper) ![](https://raw.githubusercontent.com/AutismSuperman/git-commit-message-helper/master/image/operation.gif)