git hook分支_Git hook (钩子文件)机制 转

githooks(5)

===========

NAME

----

githooks - Hooks(钩子) used by git

SYNOPSIS

--------

$GIT_DIR/hooks/*

简介

-----------

Hooks(钩子),是一些存放于`$GIT_DIR/hooks`文件夹的小脚本,在特定条件下触发动作.

当执行'git init',几个示例hook将复制到新资源库的hooks文件夹, 但默认情况下他们都是禁用状态.

要启用一个hook(钩子),请移除其`.sample`后缀.

注意: 你还需要为这些hook(钩子)添加可执行权限(译者注: 仅针对非Windows系统, chmod u+x XXX).

然而,在新创建的资源库中, - 那些`.sample`默认已经是可执行的(译者注: 并非如此!!).

本文档描述的是当前已经等于的hooks(钩子).

HOOKS(钩子)

-----

applypatch-msg

~~~~~~~~~~~~~~

这个hook由'git am'脚本触发. 它将接受一个参数,即将提交的commit msg的临时文件路径.

如果这个hook以非0状态退出,那么'git am'将在patch(补丁)应用之前取消.

这个hook可以用于修改message(信息)文件, 用来匹配项目的规范格式(如果有的话).

也可以用于校验commit msg,并在必要时拒绝提交.

缺省的'applypatch-msg' hook, 当其启用时,将调用'commit-msg' hook.

pre-applypatch

~~~~~~~~~~~~~~

这个hook由'git am'脚本触发. 它并不接受参数, 当patch(补丁信息)已经应用,且commit尚未执行

之前被调用.

如果以非0状态退出, 那么working tree(工作树)将不会被提交,但patch已经被应用.

它可以用于检查当前的working tree(工作树),当其无法通过某个特定测试时,拒绝进行提交.

缺省的'pre-applypatch' hook, 当其启用时,将调用'pre-commit' hook.

post-applypatch

~~~~~~~~~~~~~~~

这个hook由'git am'脚本触发. 它并不接受参数, 在patch已经应用且commit已经完成后执行.

这个hook主要用于通知, 而且对'git am'的输出无影响.

pre-commit

~~~~~~~~~~

这个hook由'git commit'触发, 且可以通过`--no-verify` 来略过. 它并不接受参数, 在commit msg被创建之前执行.

如果以非0状态退出,将导致'git commit'被取消.

缺省的'pre-commit' hook, 当启用时, 将捕捉以空白字符结尾的行,如果找到这样的行,则取消提交.

(译者注: 事实上并非如此,而是查找非ascii文件名!!)

所有的'git commit' hooks在执行时,如果没有指定编辑器,那么都附带一个环境变量`GIT_EDITOR=:`

prepare-commit-msg

~~~~~~~~~~~~~~~~~~

这个hook由'git commit',在准备好默认log信息后触发,但此时,编辑器尚未启动.

它可能接受1到3个参数.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值