Gogs服务同博客静态服务在同一服务器,我想每次push后,Gogs接受成功后会自动更新远程服务器的资源
用Hexo框架写完博客后,使用hexo d -g
会将生成好的静态资源推送到自己的远程仓库,远程服务器每次都要登上去手动git pull
,而写个crontab
有又觉得不怎么好,然后就找到了Git 服务端钩子post-receive
此挂钩在整个过程完结以后运行,可以用来更新其他系统服务或者通知用户
这个钩子在Gogs的gogs-repositories
目录下,每一个仓库目录下都有hooks/post-receive
这个钩子,将以下改好后添加到文件内即可
unset GIT_DIR
NowPath=`pwd`
DeployPath="/var/www/blog" # 要将这里的路径修改为远程服务器上存放博客静态资源的目录
cd $DeployPath
git pull origin master
cd $NowPath
exit 0