前言

不想用第三方的travis-ci实现自动部署博客,但是gitbub提供的钩子折腾了下,遇到了个坑。 休息的时候突然想了想,这个钩子其实就是在git push(或者其他操作)的时候触发自定义的命令而已。 其实我每写一篇文件发布,还需要运行hexo插件的一些操作。 为什么我不用shell做这些事情呢?

流程:

  • 准备同时备份两个文件夹,一个是博客的静态资源,一个是hexo博客生成库,两个均备份到github仓库
  • 配置好两个git文件夹都使用免密码使用git
  • 将下面的脚本放于hexo博客生成库的文件夹下面(修改BLOG路径为自己的路径),参考文件名为auto.sh
  • 用git bash 执行auto.sh

思路

  • 删除$BLOG静态资源(有洁癖的我)
  • 用hexo生成静态资源
  • 将hexo博客生成库推送到github仓库
  • 将public/文件夹(静态资源)移动到$BLOG文件夹内
  • 将$BLOG文件夹推送到github仓库
#!/bin/bash
#By Ali 2017

#你博客静态文件所在文件夹
BLOG="../Ali1213.github.io";


rm -rf $BLOG/*;

hexo generate;

git add .;

git commit -a -m "auto commit by ali at `date +%Y%m%d`";

git push origin master;

mv -f public/* $BLOG;

cd  $BLOG;

git add .;

git commit -a -m "auto commit by ali at `date +%Y%m%d`";

git push origin master;

2018年7月30日更新 因为博客的生成器从hexo换成了hugo,所以重写了一下,思路是一样的

#!/bin/bash

BLOG="../Ali1213.github.io";

rm -rf $BLOG/*;

hugo;

git add . ;

git commit -a -m "auto commit by ali at `date +%Y%m%d`";

git push origin master;

mv -f public/* $BLOG;

cd  $BLOG;

git add .;

git commit -a -m "auto commit by ali at `date +%Y%m%d`";

git push origin master;
总浏览数:
总访客数: