0%

备份hexo source脚本

hexo 目录下的source子目录包含了写作的 md 文件,在hexo deploy 中是 push 到 github pages 的 master 分支,这样我们可以将整个 hexo 目录 push 到该 project 的hexo分支

假设我的在d:\hexo\,下面有public source等目录

  1. 先将.gitignore 文件添加node_modules.deploy
  2. 在此处打开命令行,输入
1
2
3
4
5
6
7
//[]表示可省略
git init . //init git repository
git remote add github your-github-pages-repo-url
git checkout --orphan hexo //新建一个孤立的hexo分支,并切换到该分支
git add --all //add files
git commit -a -m "2014-5-25 19:22:19" //以当前时间commit
git push github hexo[:hexo] //推送到github的hexo分支

使用脚本

其中的后三步 add commit push 是以后常用的,写成脚本吧,node 就是干这个的…
开始想弄成 bat 脚本,但在 bat 中以时间 commit,搜了半天,看不懂怎么弄成 2014-5-25 19:26:49 这种格式,还是弄成 node 的吧,正好学习下 child_process 这个包

node backup[.js]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//加载require包
var util = require('util');
var exec = require('child_process').exec;

var now = new Date();
now = util.format("%d-%d-%d %d:%d:%d", now.getFullYear(), now.getMonth() + 1, now.getDate(),
now.getHours(), now.getMinutes(), now.getSeconds());
var command = util.format('git checkout hexo & git add --all & git commit -m "%s" & git push github hexo', now);
var child = exec(command);
child.stdout.on('data', function(data) {
console.log(data);
});
child.stderr.on('data', function(error) {
console.error(error);
});

就几句,另存为 backup.js 就 O 了,考完试再看看能不能弄成 hexo 插件吧,复习去了…