Hexo 多台电脑同步方法

前言

由于没有服务器,只能在本地电脑上搭建 Hexo 博客,而搭建一个个性化的博客还是挺费时的,如果换电脑了博客就得重新搭建,重新配置。那怎么才能在多台电脑间灵活切换,不用重复搭建呢?

原理

本文将用 Git 分支来实现

Hexo 源文件放在 master 分支;
Hexo 生成的静态资源文件则放在新分支 my-blog 上。

换电脑时直接 git clone 克隆一份,以后多台电脑维护只需要在修改前 pull,修改后 push 即可实现同步。

Hexo 博客目录解析

├── .deploy            执行hexo deploy命令部署到GitHub上的内容目录
├── public            执行hexo generate命令,输出的静态网页内容目录
├── scaffolds        layout模板文件目录,其中的md文件可以添加编辑
├── scripts            扩展脚本目录,这里可以自定义一些javascript脚本
├── source            文章源码目录
├──── _drafts        草稿文章
├──── _posts        发布文章
├── themes            主题文件目录
├── _config.yml        全局配置文件,大多数的设置都在这里
└── package.json    应用程序数据,指明hexo的版本等信息,类似于一般软件中的关于按钮

必须备份文件

├──_config.yml        #全局配置文件
├── theme            #主题文件
├── scaffolds         #文章模板
├── package.json     #说明使用哪些包
├── .gitignore         #限定在提交的时候哪些文件可以忽略
└── source            #文章源码目录

操作步骤

前提

  • Node.js (Node.js 版本需不低于 8.10,建议使用 Node.js 10.0 及以上版本)
  • Git

旧电脑上的操作

(1)新建分支 my-blog ,并修改站点配置文件的 branch 修改为 my-blog,如下:

deploy:
  type: git
  repo: git@gitee.com:march21sunny/march21sunny.git
  branch: my-blog

(2)在站点根目录下找到 .gitignore,该文件中的内容为提交 git 时忽略的文件、目录,确认该文件中没有上文中的必须备份文件。

如果themes文件下的主题文件中有 .git,删除。

右键空白处选择 Git Bash Here,依次执行以下命令:

git init                            #初始化仓库
git add .                            #全部文件添加到仓库
git commit -m "xxx"                    #文件提交到仓库,xxx为提交说明
git remote add origin xxx            #关联远程库,xxx为你的Git仓库地址
git push -u origin master            #提交到远程库

至此,查看 git 主页,你的源码应该已经提交到你仓库的 master 分支上了。

新电脑上的操作

(1)新建一个目录,克隆 Git 仓库源码或复制源文件到该目录

git clone xxx     # xxx为你的仓库地址

(2)安装hexo

npm install hexo-cli -g

如果出错执行

npm install -g hexo

(3)安装服务

npm install hexo --save

(4)安装模块

npm install

(5)最后生成文件预览

hexo clean && hexo g && hexo s

这时候你应该就可以在新电脑上看到和旧电脑上完全一样的博客了。

维护

以后每次要写博文或者修改文件时,先拉取最新博客源码

git pull origin master

再进行修改,修改后要做两件事:

(1)部署博客到 my-blog 分支:

hexo d

(2)上传最新博客源码到 master 分支:

git push origin master

这样就可以实现多台电脑间博客无缝切换啦。

Git支持多种协议,包括https,但ssh协议速度最快。推荐使用SSH。

本文链接: https://jianz.xyz/index.php/archives/51/

1 + 2 =
快来做第一个评论的人吧~