git-msg规范
XWOS的git-commit-msg规范
2 分钟阅读
格式
# [标题] <type>(<scope>): :emoji: <subject>
# - type: feat, fix, perf, refactor, style, revert, docs, test, ci,
# chore, milestone, release, revision, alpha, beta, rc
# - scope: 可为空
# - subject: 以动词开始的短语,结尾无句号
# - 页眉只占一行
# - 每行总长度不超过72个字符(中文字符计2个字符)
#
# [正文] 描述
# - 为什么需要修改?
# - 如何定位问题?
# - 修改有什么副作用?
# - 每行总长度不超过72个字符(中文字符计2个字符)
#
# [脚注] <token:> <text>
# - 问题的ID或链接
# - BREAKING-CHANGE(破坏性修改)
# - 每行总长度不超过72个字符(中文字符计2个字符)
参考:https://www.conventionalcommits.org/
git-commit-message格式规则
- 标题
- 标题信息必须以一个可选的 类别(type) 作为前缀, 类别(type) 后面可以跟一个可选的 范围描述词(scope) , 范围描述词(scope) 需要放在英文的小括号内,之后可再跟一个可选的英文的 ! 表示有 BREAKING CHANGE 发生;
- 类别(type) 说明
- feat: 新功能
- emoji
- 新增
:sparkles:
- 移除
:fire:
- 配置相关
:wrench:
- 升级依赖
:arrow_up:
- 新增待改进的代码
:poop:
- 新增.o或.a文件
:package:
- 新增
- emoji
- fix: 修复BUG
- emoji
- 修复重大BUG
:ambulance:
- 修复BUG
:bug:
- 修复警告
:rotating_light:
- 修复安全问题
:lock:
- 修复重大BUG
- emoji
- perf: 性能优化
- emoji
- 性能优化
:zap:
:racehorse:
- 移除死代码
:coffin:
- 性能优化
- emoji
- refactor: 重构代码
- emoji
- 重大重构
:hammer:
- 新增
:sparkles:
- 重构
:recycle:
- 移除
:fire:
- 配置相关
:wrench:
- 破坏性修改
:boom:
- 增加log
:loud_sound:
- 移除log
:mute:
- 调整路径
:truck:
- 依赖的第三方软件更新导致的API更新
:alien:
- 重大重构
- emoji
- style: 格式调整(删除行尾空格等)
- emoji
:art:
- emoji
- revert: 回退提交
- emoji
- 回退代码
:rewind:
- 降级依赖
:arrow_down:
- 回退代码
- emoji
- docs: 文档
- emoji
- 增加文档
:memo:
- 修改.md文档
:book:
- 修改源码中的注释
:bulb:
- 增加文档
- emoji
- test: 测试
- emoji
- 增加测试
:white_check_mark:
- 增加反向测试(导致错误的测试)
:test_tube:
- 增加测试
- emoji
- ci: 系统集成
- emoji
:construction_worker:
- emoji
- chore: 其他未归类的零碎事务
- emoji
- 配置相关
:wrench:
- 分支合并
:twisted_rightwards_arrows:
- 配置相关
- emoji
- milestone: 发布大版本
- emoji
:bookmark:
- emoji
- release: 发布小版本
- emoji
:bookmark:
- emoji
- revision: 发布修订版
- emoji
:bookmark:
- emoji
- alpha: 发布alpha版本
- emoji
:bookmark:
- emoji
- beta: 发布beta版本
- emoji
:bookmark:
- emoji
- rc: 发布rc版本
- emoji
:bookmark:
- emoji
- feat: 新功能
- 标题中的 主题(subject) 与 类别(type) 之间需要增加一个冒号
:
与一个空格 - 标题的最后不能有标点符号;
- 标题只能占一行;
- BREAKING CHANGE 是指
- API原型修改
- API删除
- 正文
- 正文与标题间需要空一行;
- 脚注
- 脚注与正文间需要空一行;
- 每一项脚注需要有一个单词作为 令牌(token) ,
- 格式可以是 令牌(token) 后面跟一个
:
和一个空格token:
- 格式也可以是 令牌(token) 后面跟一个空格
#
作为间隔,例如:token:
- 格式可以是 令牌(token) 后面跟一个
- 脚注可以有多行内容,直到遇到新的**令牌(token)**为止;
- 脚注的行与行之间无空行;
字符集规则
全部使用 utf-8 字符集。
设置方法
- 增加环境变量
export LESSHARESET=utf-8
- 设置字符集
git config i18n.commitencoding utf-8 # 设置提交日志使用utf-8
git config i18n.logoutputencoding utf-8 # 设置输出日志时使用utf-8
git config core.quotepath false # 中文路径使用utf-8
git config gui.encoding utf-8 # 图形界面使用utf-8
行尾空格规则
原则上,使用 \n
(LF)作为换行符,但自动生成的代码可不遵守这个规则。
Windows NTFS文件系统的文件权限问题
NTFS文件系统下,会导致文件的mode变为100644,且chmod无法修改, 可修改git配置忽略文件模式的变更。
git config core.filemode false