Git 钩子概念

钩子只属于并且作用于一个特定的版本库,克隆操作的时候不会被复制!

Git钩子分为两类:

前置钩子:动作完成前被调用,如果失败,Git动作也就失败

后置钩子:动作完成后被调用,不影响动作结果

钩子其实就是一个或者多个事先义好的脚本。

Git钩子存放的的位置 ./git/hooks

[root@git hooks]# ls -al
total 52
drwxr-xr-x. 2 root root 4096 Dec 19 00:36 .
drwxr-xr-x. 8 root root 4096 Dec 19 06:16 ..
-rwxr-xr-x. 1 root root 452 Dec 19 00:36 applypatch-msg.sample
-rwxr-xr-x. 1 root root 896 Dec 19 00:36 commit-msg.sample
-rwxr-xr-x. 1 root root 160 Dec 19 00:36 post-commit.sample
-rwxr-xr-x. 1 root root 548 Dec 19 00:36 post-receive.sample
-rwxr-xr-x. 1 root root 189 Dec 19 00:36 post-update.sample
-rwxr-xr-x. 1 root root 398 Dec 19 00:36 pre-applypatch.sample
-rwxr-xr-x. 1 root root 1578 Dec 19 00:36 pre-commit.sample
-rwxr-xr-x. 1 root root 1239 Dec 19 00:36 prepare-commit-msg.sample
-rwxr-xr-x. 1 root root 4951 Dec 19 00:36 pre-rebase.sample
-rwxr-xr-x. 1 root root 3611 Dec 19 00:36 update.sample
[root@git hooks]#

上面的是模板钩子,需要把.sample 后缀去掉才可以用。

随便开一下看看
[root@git hooks]# cat applypatch-msg.sample

!/bin/sh

. git-sh-setup
test -x "$GIT_DIR/hooks/commit-msg" &&
exec "$GIT_DIR/hooks/commit-msg" ${1+"$@"}
:
[root@git hooks]#

可以看到其实就是一个脚本,而且有可执行权限。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容