Git Commit Log 相关规范及定义

发布时间 2023-06-02 13:40:54作者: 浅唱z2

Git Commit Log相关知识

一. commit log规范的意义

  • 便于程序员对提交历史进行追溯, 方便追责(笑)
  • 约束commit message, 意味着每次提交都有意义, 因此需要慎重的进行提交; 不能将所有的文件都放到一个 commit里面; 一个 commit 一个文件, 这样才能更加细化提交的功能
  • 格式化的 commit message 才可以用于自动化输出 Change Log

二. commit message 格式

下面为每次提交的message信息规范

[type]'空格'subject'空格'
 
body

解释:

  1. type为本次提交的类型
  2. subject 为本次提交的简单描述
  3. 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