利用Git-Hook动态发布博客
概述
平时在写博客的时候经常会遇到昨天晚上在家里写好了一半的文章,第二天来到公司想要接着昨天晚上的博客继续写,这是一件很苦恼的事。就像我们平时写代码一样,需要多人协作在不同的地方同时开发一样,为了解决这个问题,人们引入了版本控制的概念,本篇文章为了解决这个问题,通过使用git来对博客内容进行管理,利用git-hook动态发布博客,达到多台电脑编写文章并且能够快速部署博客的目的。
在服务器端初始化blog的hexo工程
创建流程参考上一篇如何使用hexo撰写博客的文章
在服务器端初始化blog的git裸仓库
1 | $ mkdir blog.git |
编辑该git仓库的post-update脚本
1 | $ cd blog.git/hooks |
修改内容如下:
1 |
|
这个脚本的作用是在客户端执行git push操作时,将最新的博客内容打包复制到上一步创建的hexo工程source文件夹下,然后执行hexo clean && hexo g
命令,这样只要对博客内容进行了修改,服务器上hexo的内容就会自动重新生成。
并且由于我是通过nginx对hexo生成的public文件夹做了静态映射,所以这里没有启动hexo服务,如果服务器上没有安装nginx,可以在最后一步加上hexo server来启动hexo服务
在客户端初始化blog的hexo工程
创建流程参考上一篇如何使用hexo撰写博客的文章,hexo工程创建好之后,进入到source文件夹下,执行以下命令对该文件夹下所有文件进行git仓库初始化并关联服务端仓库。
1 | $ cd source |
最终的目录结构如下:
这样以后我们只需要在source文件下进行md文件的编写,然后执行git push操作就会触发我们刚刚编写的post-update脚本,从而实现自动部署。
至此,所有步骤已经完成,接下来我们测试一下:
在_posts文件夹下添加一个md文件,编写一些内容
将新增的文件推送到远程服务器
1
2$ git add .
$ git commit -m "新增文章" && git push origin master刷新浏览器发现页面中多出来一篇我们刚刚添加的博客