引言 {#引言}
请在云服务器上先搭建Git服务,详见博客链接:Hexo云服务器搭建Git服务
我们在本地的将Hexo博客文件 push 到服务器时,只是提交到了创建的 Git 服务器创建的裸仓库中。还需要进入服务器的 web 运行目录,通过 git pull 命令拉取到 web 目录。为了实现过程的自动化,可以使用 Git 中的钩子来解决该问题。
Git 钩子介绍 {#Git-钩子介绍}
Git 钩子 (hooks) 是在 Git 仓库中特定事件 (certain points) 触发后被调用的脚本。通过钩子可以自定义 Git 内部的相关(如 git push)行为,在开发周期中的关键点触发自定义的行为。
创建 Git 钩子 {#创建-Git-钩子}
服务端钩子就是你 push 之后的服务器要运行的脚本。
有四个钩子:
- pre-receive 接受之前
- update 更新之前
- post-update 更新之后
- post-receive 接受之后
在 /home/git/blog.git/hooks 目录下新建 post-receive
|-----------|---------------------------------------------------|
| 1
| vim /home/git/blog.git/hooks/post-receive
|
写入以下文本:
|-----------|---------------------------------------------------------------------------------|
| 1
| git --work-tree=/home/git/blog --git-dir=/home/git/blog.git checkout -f
|
赋予执行权限:
|-----------|--------------------------------------------------------|
| 1
| chmod +x /home/git/blog.git/hooks/post-receive
|
使用方法 {#使用方法}
在本地通过hexo deploy
之后,即可实现在web
页面目录下自动同步更新Hexo
博客数据。