git提交时如何强制检测规范?

14 min read

可以使用 Git Hook 来强制检测提交规范。

Git Hook 是 Git 软件中一种自定义事件处理器,可以让开发者在 Git 的预定事件上挂载自己的脚本,在 Git 软件执行相应的操作时,运行脚本来定制操作细节。

可以通过编写 pre-commit Hook,在代码提交前进行检测,保证代码的规范。

以下是一个简单的 pre-commit Hook 脚本示例,其中包含了一些代码规范检测的命令:

#!/bin/bash

RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
NC='\033[0m'

function check_code {
  cd $(git rev-parse --show-toplevel)  # change to your git root directory

  # run your code checks here
  # e.g. pylint, flake8, black, isort, etc.
  # use && to separate multiple commands
  pylint */*.py && \
  flake8 . && \
  black --check . && \
  isort --check-only .
}

if check_code; then
  printf "${GREEN}Code style check passed!${NC}\n"
  exit 0
else
  printf "${RED}Code style check failed! Please fix the errors.${NC}\n"
  exit 1
fi

将上述脚本内容保存为 pre-commit 文件,并放置在你的 Git 项目的 .git/hooks 目录下即可。

在使用时,每次执行 git commit 命令时会执行 pre-commit Hook 脚本,如果检测到代码规范不符合要求,则会阻止提交,并输出错误信息。