Git

Git 钩子概念

2016-01-06  本文已影响256人  如来自然

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

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]#

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

上一篇下一篇

猜你喜欢

热点阅读