×

git commit message 编写规范

96
郗南枫
2018.05.13 10:18 字数 679

git是软件开发过程中必不可少的代码管理工具,在每次提交新代码时,需要写一些信息表示本次提交所改动的内容。为了方便日后的管理与迭代,commit message最好能有一些固定的格式,让人一眼就能知道每一次提交所做的修改。本文分享一下开源社区常用的代码提交规范,仅供参考。

完整的commit message格式如下:

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>

有三个大的部分,分别是Header(第一行)、Body和Footer。在Header部分,type字段用于说明commit的类别,允许使用下面7个标识符:

  • feat: 增加新功能
  • fix: 修复bug
  • docs: 编写文档
  • style: 变换代码风格(不影响代码运行的变动)
  • refactor: 代码重构(对代码结构有大的改动,但不影响运行)
  • test: 增加测试代码
  • chore: 辅助工具的变动

scope字段用于说明本次commit所影响的范围,比如视图层、数据模型或者路由模块等,是一个可选参数。

subject字段是本次commit的一个概要,需要用最简洁的语言来说明本次修改的内容。

在Body部分,可以使用多行文本详细地说明本次提交所改动的一些细节,从而帮助后续的使用者们更好地了解代码的内容。

Footer部分一般只用于两种情况,一是不兼容变动,如果本次的commit与前一个版本的代码无法兼容,那么Footer部分需要以BREAKING CHANGE开头,后面描述本次变动的详细情况以及迁移到新版本代码的方法。

二是关闭Issue,如果本次commit是针对某个Issue,可以在Footer部分以Close开头,后面用#号标识对应的Issue号码。

以上所说的就是完整的commit message的规范写法,在实际开发中,为了提高效率,也可以丢弃Body和Footer部分,在Header的subject字段中写入必要的说明,同时可以加入FixClose等标明修复某个bug或者关闭某个Issue,这样既简洁又达到了日常实用的目的。当然团队内部有时候也会针对开发的项目给出对应的要求,总的来说都是为了让开发过程更加的高效和便捷。

参考资料:
Commit message 和 Change log 编写指南
规范的Commit message提交格式

日常
Web note ad 1