概述
Git commit规范目的
- 方便后来人员查看历史板本
- 方便自动化生成Change Log
- 提供更多历史信息, 方便快速浏览
- 可以过滤某些commit便于查找信息 git log --grep feat
规范说明
Git commit message(以下简称msg)用中文书写
不要使用commit -m 写commit log
-
msg分为两部分, header ;body 如下图
header 和body 用空行分开
header要求: 最多包含30个字符, 由两部分组成英文尖括号包围的类型, 以及commit主题, 类型是由固定的集中类型标签用于说明commit的类别,如下表1-1 主题简要描述本次提交的核心内容
feat 新特性开发(feature)
fix 修复bug(bugfix)
docs 文档增加或修改
style 格式修改(不影响代码的运行)
refactor 重构(既不是新增功能,也不是修复bug)
test 增加测试用例
chore 构建过程或构建工具改变
- body要求: 每行不超过72字符, 包括但不限制, 改变的必要性, 改变是如何解决的, 参考资料链接等.
提交示例
- 建议将提交示例写入一个模板文件, 然后用如下命令应用模板: git config --global commit.template <.git-commit-template.txt file path>
# [类型]: <主题>(最多50个字符)
#
# 每行不超过72字符的描述。其应该包含但不强制:
#
# * 改变的必要性?
# * 改变是如何解决问题的?
#
# 如果有说明链接可以附在这里,包括但不限于tapd需求链接
# 参考资料文章。
#
# -------COMMIT END-----------
- Vim增强gitcommit强制换行, 保证单行不超过72个字符在.vimrc中增加
autocmd Filetype gitcommit setlocal spell textwidth=72
-
Commit示例
- 关于中间小提交, 可以用[refactor]标签标识, 某个特性开发完成后用[feat]标签标识
Git flow流程
参考文献 https://robots.thoughtbot.com/5-useful-tips-for-a-better-commit-message https://github.com/commitizen/cz-cli https://github.com/thoughtbot/dotfiles/blob/master/gitmessage http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html