searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

开源pre-commit框架浅析

2023-10-23 02:08:27
89
0

一、简介

开源pre-commit框架,可自定义git钩子脚本。用于本地git提交时,可是实现对项目代码进行格式化、静态检查、单元测试检查等

二、安装

pre-commit框架基于python语言开发,安装pre-commit前,请先确认本地环境是否已安装python

使用pip、conda或Homebrew安装  (windows等操作系统可切换至git bash,安装并执行pip命令)

# 使用pip安装
pip install pre-commit

# 使用conda安装
conda install -c conda-forge pre-commit

# 使用brew安装
brew install pre-commit

三、使用

1. 设置pre-commit-hooks配置文件
pre-commit依赖于项目根目录下的`.pre-commit-config.yaml`配置文件。需要手动在根目录创建此文件。

# 执行以下命令,可以生成默认配置文件
pre-commit sample-config > .pre-commit-config.yaml

2. 安装git hooks
设置好配置文件后,需安装钩子脚本得以生效。

# 执行以下命令,安装git hooks
pre-commit install

3. 对所有文件进行检查
默认情况下,git hooks部分脚本只对处于当前阶段的文件进行检查。若对所有文件进行检查

# 执行以下命令,进行全文件检查
pre-commit run --all-files

4. 跳过当前pre-commit hooks
需要跳过当前阶段的hook检查脚本时

# 执行以下命令,跳过当前阶段hook,例:
git commit -m "xxx" --no-verify

5. 自动启用pre-commit
当多个项目配置.pre-commit-config.yaml时,需在每个项目目录下手动执行`pre-commit install`命令,较为繁琐。

官方提供一个自动启用pre-commit方案。如果存在`.pre-commit-config.yaml`配置文件并进行Git提交时,则会自动进行pre-commit检测,如果没有该配置文件,则跳过

# 设置git全局变量,制定初始化模板目录
git config --global init.templateDir ~/.git-template

# 自动设置初始化模板
pre-commit init-templatedir ~/.git-template

6. 卸载git hooks
当确认不再使用pre-commit框架下的钩子脚本时,卸载git hooks

# 执行以下命令,卸载git hooks
pre-commit uninstall

7. hook开发
自定义hook脚本,并将hook配置添加至`.pre-commit-hooks.yaml`配置文件中。在其他项目中执行

# 本地仓库测试,例:
pre-commit try-repo ../pre-commit-hooks/ test --verbose --all-files
0条评论
0 / 1000
b****n
2文章数
0粉丝数
b****n
2 文章 | 0 粉丝
b****n
2文章数
0粉丝数
b****n
2 文章 | 0 粉丝
原创

开源pre-commit框架浅析

2023-10-23 02:08:27
89
0

一、简介

开源pre-commit框架,可自定义git钩子脚本。用于本地git提交时,可是实现对项目代码进行格式化、静态检查、单元测试检查等

二、安装

pre-commit框架基于python语言开发,安装pre-commit前,请先确认本地环境是否已安装python

使用pip、conda或Homebrew安装  (windows等操作系统可切换至git bash,安装并执行pip命令)

# 使用pip安装
pip install pre-commit

# 使用conda安装
conda install -c conda-forge pre-commit

# 使用brew安装
brew install pre-commit

三、使用

1. 设置pre-commit-hooks配置文件
pre-commit依赖于项目根目录下的`.pre-commit-config.yaml`配置文件。需要手动在根目录创建此文件。

# 执行以下命令,可以生成默认配置文件
pre-commit sample-config > .pre-commit-config.yaml

2. 安装git hooks
设置好配置文件后,需安装钩子脚本得以生效。

# 执行以下命令,安装git hooks
pre-commit install

3. 对所有文件进行检查
默认情况下,git hooks部分脚本只对处于当前阶段的文件进行检查。若对所有文件进行检查

# 执行以下命令,进行全文件检查
pre-commit run --all-files

4. 跳过当前pre-commit hooks
需要跳过当前阶段的hook检查脚本时

# 执行以下命令,跳过当前阶段hook,例:
git commit -m "xxx" --no-verify

5. 自动启用pre-commit
当多个项目配置.pre-commit-config.yaml时,需在每个项目目录下手动执行`pre-commit install`命令,较为繁琐。

官方提供一个自动启用pre-commit方案。如果存在`.pre-commit-config.yaml`配置文件并进行Git提交时,则会自动进行pre-commit检测,如果没有该配置文件,则跳过

# 设置git全局变量,制定初始化模板目录
git config --global init.templateDir ~/.git-template

# 自动设置初始化模板
pre-commit init-templatedir ~/.git-template

6. 卸载git hooks
当确认不再使用pre-commit框架下的钩子脚本时,卸载git hooks

# 执行以下命令,卸载git hooks
pre-commit uninstall

7. hook开发
自定义hook脚本,并将hook配置添加至`.pre-commit-hooks.yaml`配置文件中。在其他项目中执行

# 本地仓库测试,例:
pre-commit try-repo ../pre-commit-hooks/ test --verbose --all-files
文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0