此插件有一个 bug!运行 hexo b 后会把主题文件夹里的.git 文件夹删除,导致无法通过 git pull 来升级主题

前言

当我们要换电脑或者重装电脑系统时,博客的备份就显得很重要了,我们无须通过 U盘 来拷贝整个 blog 文件夹,这种方式太浪费时间,我们只需要使用 hexo-git-backup 这个插件,即可帮我们完美的备份好博客。

博客备份

>安装

hexo 版本为 3.xx 以上

npm install hexo-git-backup --save

>配置

2020 年 10 月 1 日之后,新创建的仓库默认分支为 main,按个人实际情况填写

  1. 新建仓库,自定义仓库名(如:hexo-backup),权限设置为private
  2. 在博客配置文件 D:\blog\_config.yml 中添加以下内容 (非主题配置文件)
backup:
  type: git
  repository:
    github: git@github.com:xxx/xxx.git,branchName

如下图:

>使用

运行 hexo backup 或缩写 hexo b 即可备份博客

hexo b

20211223160523

博客恢复

>安装 Git

windows:在Git 官网下载.exe 文件,安装选项全部默认,注意其中选择环境变量一步推荐选择 Use Git from the Windows Command Prompt,这样我们就可以直接在命令提示符里打开Git了。

>安装 Node.js

hexo 是基于 node.js 编写的,所以需要安装一下 node.js 和里面的 npm 工具。

windows:推荐下载和博客之前运行环境同一版本的 Node.js,安装选项全部默认,一路点击Next
安装好之后,打开 Git Bash,输入 node -vnpm -v,如果出现版本号,那么就安装成功了。

20211223160543

>生成 SSH 秘钥绑定 Github

打开 Git Bash,输入

git config --global user.name "yourname"
git config --global user.email "youremail"
ssh-keygen -t rsa -C "youremail"

在 C:\Users\主用户里出现 .ssh 文件夹,里面有 id_rsaid_rsa.pub 两个文件,复制 id_rsa.pub 的内容。

cat ~/.ssh/id_rsa.pub

打开Github,在头像下面点击 Settings,再点击 SSH and GPG keys,新建一个 SSH key,名字随便取一个都可以,把刚刚复制 id_rsa.pub的内容粘贴进去。

Git Bash 中输入 ssh -T git@github.com,如果出现你的用户名,那就成功了,如下图所示:

20211223160600

>下载博客备份文件

克隆上面个人备份博客的仓库 hexo-backup 到本地 blog 文件夹

git clone -o github git@github.com:xxx/xxx.git

>安装 Hexo

在 blog 文件夹下 GIt Bash Here

npm install hexo-cli -g

>安装依赖文件

npm install

最后运行 hexo cl && hexo g && hexo d,检查是否成功。

可能遇见的问题

fatal: 'github' does not appear to be a git repository
fatal: Could not read from remote repository

报错原因
这是因为 confighexo-backup 填的主机名 github 和远程主机名 origin 对不上号
可以运行 git remote -v 查看远程仓库信息
可以运行 git remote rm origin 来删除默认的 origin

如果运行 hexo b 的时候出现上述错误,可以按下述方法解决:

git remote -v # 查看远程仓库信息
git remote rm origin # 如返回结果为 origin git@github.com:xxx/xxx.git
git remote add github git@github.com:xxx/xxx.git
hexo b

参考文章

  1. Hexo 常用插件
  2. git 常用命令大全
  3. Hexo+Github 博客搭建完全教程
  4. 没有要求备份主题,但是仍然备份了
  5. 重装系统后重新部署恢復 Hexo blog