Git:HOOK钩子(自动化部署)
Git仓储在设置为裸(bare)仓储时执行自动化部署,能实现提交的版本自动完成对应实际线上或者测试目录的更新
post-receive及post-update,都是在客户端执行git push后执行的脚本
2者的区别有2点:
post-receive只会执行一次,并且没有执行参数
post-update会对提交的每个分支修改都执行一次对应脚本,有3个执行参数
- 更新的ref名称
- 被更新前的对象
- 被更新后的对象
脚本执行如果去更新某个仓储会出现fatal: Not a git repository
需要在脚本中添加:
unset GIT_DIR##取消当前环境变量