Git Commit Log 相关规范及定义
Git Commit Log相关知识
一. commit log规范的意义
- 便于程序员对提交历史进行追溯, 方便追责(笑)
- 约束
commit message
, 意味着每次提交都有意义, 因此需要慎重的进行提交; 不能将所有的文件都放到一个commit
里面; 一个commit
一个文件, 这样才能更加细化提交的功能 - 格式化的
commit message
才可以用于自动化输出Change Log
二. commit message 格式
下面为每次提交的message信息规范
[type]'空格'subject'空格'
body
解释:
- type为本次提交的类型
- subject 为本次提交的简单描述
- body为本次提交的详细描述, 需要在 简单描述后空一行, 然后进行填写
样例为:
[feat] 登录功能Controller
注: 如果有详细信息, 需要在 message 中空一行后填写详细信息
[feat] 登录功能Controller
1. 包含保存功能
2. 包含存储功能
3. xxxx
三. commit log hook
在 本地项目/.git/hooks/
目录下, 将 commit-msg.sample
重命名为 commit-msg
修改其中的校验规则, 这样就可以在 git提交的时候, 自动进行校验了
这里提供一个简单配置
COMMIT_MSG=`cat $1 | egrep -E "^\[(feat|fix|docs|style|refactor|perf|test|build|ci|chore|revert|init)\]"`
echo "- $COMMIT_MSG -"
if [ "$COMMIT_MSG" = "" ]; then
echo "Commit Message 不规范,请检查!"
exit 1
fi
if [ ${#COMMIT_MSG} -lt 20 ]; then
echo "Commit Message 太短了,请再详细点!\n"
exit 1
fi