git之post-merge钩子函数: 在使用这个钩子函数之前,先补充一个git pull 的原理: git pull 包含两个操作,git fetch和git merge
git fetch:将远程仓库拉取到本地仓库 git merge:将本地仓库与分支进行merge git pull执行时,会先向远程发送git-upload-pack请求,携带是本地仓库commit的记录,如果一样就不需要拉取,不一样就将远程仓库拉取下来。
所以可以通过git pull或者 git merge 触发这个钩子函数.
打开项目的 .git目录,然后打开里面的hooks目录,会发现各种 .sample结尾的钩子函数. vim post-merge 新建文件,根据项目pull之后需要执行的操作,添加脚本,这里给个例子:
#!/bin/bash
echo 'composer install'
php8.1 /usr/bin/composer install
echo "invoking schema update"
php8.1 bin/console doctrine:migrations:migrate
#yarn
echo 'build admin resource'
yarn run dev
#web
echo 'build web resource'
cd web-project
yarn build
#restart service
supervisorctl restart web:web_project_00
exit 0
经过上面的操作,php 安装指定的依赖 数据库迁移 以及相关静态资源的打包;nuxt 打包资源; supervisorctl 重启守护进程
