Git Commit Message 应该怎么写?

打印 上一主题 下一主题

主题 774|帖子 774|积分 2322

原文链接: Git Commit Message 应该怎么写?
最近被同事吐槽了,说我代码提交说明写的太差。其实都不用他吐槽,我自己心里也非常清楚。毕竟很多时候犯懒,都是直接一个 -m "fix" 就提交上去了。
这样做是非常不好的,我也是自食恶果,深受其害。特别是查看历史提交记录时,想通过提交说明来了解当时的功能变更,基本不可能,都得点进去看代码才行。
所以这两天看了一些如何写好提交说明的资料,系统地学习了一下。虽然团队没有这方面的要求,但是想要进步,得对自己提更高的要求才行。
一般使用 git 提交代码的话,可以使用 -m 参数来指定提交说明,比如:
  1. $ git commit -m "hello world"
复制代码
如果一行不够,可以只执行 git commit,这样就会跳出文本编辑器来写多行:
  1. $ git commit
复制代码
Commit Message 格式

Commit Message 包括三个部分:Header,Body 和 Footer。
  1. [/code]其中,Header 是必需的,Body 和 Footer 可以省略。
  2. [size=4]Header[/size]
  3. Header 部分只有一行,包括三个字段:type(必需)、scope(可选)、subject(必需)。
  4. [code]<type>(<scope>): <subject>
复制代码
type

type 用于说明 commit 的类别,具体的标识如下:

  • feat:一个新的功能(feature);
  • fix:修复 bug;
  • docs:修改文档,比如 README.md、CHANGELOG.md 等;
  • style:修改代码的格式,不影响代码运行的变动,比如空格、格式化代码、补齐句末分号等等;
  • refactor:代码重构,没有新功能的添加以及 bug 修复的代码改动;
  • perf:优化代码以提高性能;
  • test:增加测试或优化改善现有的测试;
  • build:修改影响项目构建文件或外部依赖项,比如 npm、gulp、webpack、broccoli 等;
  • ci:修改 CI 配置文件和脚本;
  • chore:其他非 src 路径文件和测试文件的修改,比如 .gitignore、.editorconfig 等;
  • revert:代码回退;
scope

scope 用于说明 commit 的影响范围,比如数据层、控制层、视图层等等,视项目不同而不同。
如果你的修改影响了不止一个 scope,就可以使用 * 代替。
subject

subject 是 commit 目的的简单描述,不超过 50 个字符,结尾不需要句号。
Body

Body 部分是对本次 commit 的详细描述,可以分多行。
Body 部分应该说明代码变动的动机,以及与以前行为的对比。
  1. More detailed explanatory text, if necessary.  Wrap it to
  2. about 72 characters or so.
  3. Further paragraphs come after blank lines.
  4. - Bullet points are okay, too
  5. - Use a hanging indent
复制代码
Footer

Footer 部分主要用于两种情况:不兼容变动和处理 Issue。
不兼容变动

如果当前代码与上一个版本不兼容,则 Footer 部分以 BREAKING CHANGE: 开头,后面就是对变动的描述、以及变动理由和迁移方法。
[code]BREAKING CHANGE: Previously, $compileProvider.preAssignBindingsEnabled was set to true by default. This means bindings were pre-assigned in component constructors. In Angular 1.5+ the place to put the initialization logic relying on bindings being present is the controller $onInit method.To migrate follow the example below:Before:​```jsangular.module('myApp', [])    .component('myComponent', {        bindings: {value: '
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

欢乐狗

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表