git hooks详解

简介

在每一个使用 git 进行版本管理的仓库,都有一个目录 .git/hooks,包含 commit 各个阶段 Hooks 的脚本。这些 Hooks 在 git 操作 commit、push、merge 等得时候,可以做前置或者后置的操作。Git 支持的常用钩子见下表,更多请查看官网Hooks:

Git Hook调用时机调用时机
pre-commitgit commit 执行前可以用 git commit --no-verify 绕过
commit-msggit commit 执行前可以用 git commit --no-verify 绕过
pre-merge-commitgit merge 执行前可以用 git merge --no-verify 绕过
pre-pushgit push 执行前

当git执行hooks的时候,会将工作目录设置成项目的跟目录。

配置hooks

在 git 项目中,.git/hooks下面有很多 hooks 示例如下

这些 git hooks 都是.sample结尾的,如果要启用某个 hooks 用可以去掉.sample结尾

自定义hooks路径

针对单一的工程

git config core.hooksPath "C:\Users\Desktop\hooks_dir\"

当然也可以直接全局设置

git config --global core.hooksPath "C:\Users\Desktop\hooks_dir\"

core.hooksPath的优先级比 .git/hooks下的高

hooks文件编写

1、要想拦截某次提交,我们直接让hooks的返回码非0即可

#!/bin/sh

echo "这个消息会显示,然后提交失败"
exit 1

2、获取传递的参数

#!/bin/sh

echo "你的输入为:" $(cat $1)
exit 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值