0%

使用github备份hexo

通过双分支管理,可以在github上备份hexo的所有内容,从而实现多端部署

分支介绍

  • master分支:用于保存静态文件,部署pages
  • backup分支:用于保存源代码和配置文件,备份

初始准备

进入hexo的远程仓库(github pages)新建backup分支,并设置为默认分支,使用git branch -a检查

备份过程

hexo环境端A

假设A主机为已经配置好hexo环境

进入博客目录

cd /path/to/blog

初始化git

git init

添加远程仓库

git remote add origin https://github.com/username/username.github.io.git

切换到backup分支

git checkout -b backup

添加.gitignore

1
2
3
4
5
6
7
8
9
cat > .gitignore << EOF
.DS_Store
Thumbs.db
db.json
*.log
node_modules/
public/
.deploy*/
EOF

交所有源文件到backup分支

1
2
3
git add .
git commit -m "Initial backup commit"
git push -u origin backup

同步端B

假设B为新的需要同步管理的端

克隆backup分支

1
2
git clone -b backup https://github.com/username/username.github.io.git blog
cd blog

安装hexo和依赖

1
2
npm install -g hexo-cli
npm install

验证配置

1
2
3
hexo clean
hexo g
hexo s

使用流程

同步更新

1
2
git checkout backup
git pull origin backup

正常的hexo写作

1
2
3
4
5
6
7
8
hexo new "test"

...

hexo clean
hexo g
hexo s

发布

1
2
3
4
git add .
git commit -m "new post"
git push origin backup
hexo d

注意

如果需要同步主题设置等(最好同步,因为很多自定义设置都在主题文件夹下)需要额外的操作:

把theme/theme_name作为submoudle

1
2
3
git submodule add <repository-url> themes/<theme_name>
git submodule init
git submodule update

直接把theme当做同级别的备份文件

不把theme作为子模块,这样同步管理更方便,简单

1
2
3
4
5
git rm -f themes/next
git submodule deinit themes/next
rmdir /s .git\modules\themes\next
git add themes/next/
git commit -m "convert submodule to files"

再同步push一次,就可以把theme同步了