参考:http://www.open-open.com/lib/view/open1328070404827.html
Git 本身可以调用自定义的挂钩脚本,其中有两组:客户端和服务器端。
客户端挂钩:用于客户端的操作,比如提交和合并。
服务器端挂钩:用于GIT服务器的操作,如接收被推送的提交。
Git的挂钩(Hook)主要包含
applypatch-msg
post-update
pre-rebase
commit-msg
pre-applypatch
update
post-commit
pre-commit
post-receive
prepare-commit-msg
客户端挂钩
提交工作流挂钩、电子邮件挂钩及其他客户端挂钩
提交工作流挂钩
有4个挂钩被用来处理提交的过程。
pre-commit:
prepare-commit-msg:
commit-msg:
post-commit:
E-mail工作流挂钩
有3个客户端挂钩用于email工作流。
如果要通过Email接收由git format-patch产生的补丁,可能会用到。
applypatch-msg:首先运行,接收一个参数:包含被建议提交信息的临时文件。
pre-applypatch:git am运行期间调用。可以用来测试,检查工作树。如果有问题,脚本会以非零退出,放弃此次git am的运行,补丁不会被提交。
post-applypatch:可以用来通知工作成员。
其他客户端挂钩
pre-rebase:挂钩在衍合前运行,脚本以非零退出可以终止衍合的过程。
post-checkout:在git checkout 成功运行后,运行。
post-merge:在merge命令成功后执行。