51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Hexo 云服务器自动同步Git博客数据

引言 {#引言}

请在云服务器上先搭建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博客数据。


赞(2)
未经允许不得转载:工具盒子 » Hexo 云服务器自动同步Git博客数据