- 前言
在提交commit信息时,为了统一规范commit信息,可以在Git Hooks中编写修改commit-msg脚本来先 实现自定义commit信息校验规则
-
git hooks 所在路径
hooks脚本在git项目中的根目录下的.git目录,具体路径为:.git/hooks/
目录内容如下图所示:
图1.png
-
修改脚本内容
本次为了校验commit信息是否符合提交规范,所以我们在commit-msg这个hook中编写脚本内容#! /usr/bin/env python # -*- encoding: utf-8 -*- import sys import re # 可以根据自己团队的需求来修改正则表达式 pattern = re.compile( "^(feat|fix|polish|docs|style|refactor|perf|test|workflow|ci|chore|types)(\(.+\))?: .{1,50}") def validate_commit_msg(msg: str): """ 校验git commit 内容格式是否满足要求 :param msg: :return: void """ if msg.startswith("Revert"): sys.exit(0) elif msg.startswith("Merge"): sys.exit(0) elif re.match(pattern, msg): sys.exit(0) else: print("invalid commit format") sys.exit(1) if __name__ == "__main__": # 在commit-msg 这个hook运行时会传入一个保存commit信息的文件地址 # 需要从这个文件中读取提交信息 file_name = sys.argv[1] print(file_name) commit_msg = "" with open(file_name, encoding="utf-8") as file: for line in file.readlines(): commit_msg += line validate_commit_msg(commit_msg)
-
IDEA插件
可以在Jetbrain中安装Git Commit Template 插件配合使用
-
注意事项
需要在环境变量中加入Python可执行目录,不然这个脚本会执行失败
网友评论