指尖上的记忆指尖上的记忆
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub

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 重启守护进程