Git备份博客

通过Git将Hexo博客备份至同一个库中的不同分支上。

Hexo博客目录结构

默认的Hexo博客的目录结构如下:

.
├── _config.yml
├── db.json
├── node_modules
├── package.json
├── package-lock.json
├── public
├── scaffolds
├── source
└── themes
    ├── next
    └── landscape

文件

作用

_config.yml

站点的主要配置文件

package.json

依赖的模块列表

source

包含了生成网页所使用的源文件,写作的文档存储在这一目录下

theme

存放主题文件

scaffolds

包含了创建博客页面的时候所使用的模板

public*

生成的静态网页文件,用hexo g生成

node_models*

里面安装了依赖的模块,可以由package.json确定需要安装的模块

其中带*的文件(夹)都是可以生成的,因此不需要备份。

Step 1. 初始化Git

实际上使用hexo init创建博客的时候,根目录就已经下载了一个Hexo的初始Git项目。但我们需要将文件同步到我们自己的项目上。

cd blog
git init

这一操作会清除原本指向hexo-starter项目的Git库。

Step 2. 添加主题模块到Git的子模块

为了实现主题的备份,最好的方式还是利用Git的子模块,来在Git项目中嵌套Git项目,这样就不用备份主题了,可以直接从原本的库里面下载。

git submodule add https://github.com/theme-next/hexo-theme-next.git themes/next

主题的配置

由于主题改为通过子模块来添加,所以里面的配置文件就无法修改。对于NexT主题,可以将配置文件theme/next/_config.yml放到source/_data/next.yml,这样这一份主题文件就能替换匹配的配置。

Step 3. 修改.gitignore

本来应该已经具有一份.gitignore文件(在初始化博客的时候下载的),按照这个默认配置进行备份就足够了,内容如下。

.DS_Store
Thumbs.db
db.json
*.log
node_modules/
public/
.deploy*/

另外package-lock.json这一文件也可以忽略掉。

Step 4. 做一次初始commit

git add .
git commit -m "init blog backup"

提交当前所有已有的文件,作为首次提交。

Step 5. 提交到Github上

git branch -m master hexo
git remote add origin https://github.com/AcherStyx/AcherStyx.github.io.git
git push -u origin hexo:hexo

完成后即可在一个独立的分支上备份博客的配置。

从备份中恢复

首先重新安装hexo-cli

sudo npm install -g hexo-cli

接下来从Github中clone下博客,并切换到对应的分支,最后安装之前的npm包即可:

npm install

Last updated

Was this helpful?