由于hexo是静态页面,所有文档都是保存在本地的(可以通过Github Action将整个博客放在Github中),所以在换新电脑的时候需要把博客迁移到新电脑上,这个过程也踩了一些坑,所以特此写个文档记录一下,这样下次再换设备的时候就可以快速进行迁移。

另外需要说明的是,本文档只用于已使用GitHub Action进行自动部署的迁移。

安装Git

具体的安装流程这里就不说明。安装完git之后,新建一个git本地仓库,例如新建一个xuedue文件夹,然后输入。

1
git init

之后可以直接使用 git clone 或者 git pull 将仓库拉至本地,此时需要确保本地仓库和远程仓库是同步的。

这一步需不需要之前的公钥和密钥?下次迁移时验证一下。

安装hexo

在本地的仓库安装完hexo之后,需要确保本地的hexo是可以正常进行部署的,如果在部署的过程中遇到下面的错误:

1
2
3
ERROR Cannot find module ‘hexo’ from ‘D:\blog’
ERROR Local hexo loading failed in D:\blog
ERROR Try running: ‘rm -rf node_modules && npm install --force’

可以使用命令补全丢失的环境

1
npm install

Github Action部署

前面两部已经确保了本地是可以正常进行部署的,然后这里就可以参考之前写的文档进行远程自动部署。

实际迁移中自动部署失败。遇到两个问题:

  1. GitHub Actions Error “Waiting for a runner to pick up this job”

    在推送代码触发GitHub Actions时,一直没有成功运行,控制台显示一直等待:

    1
    waiting for a runner to pick up this job

    查阅资料后,似乎时部署配置文件中的runner版本太低,我之前写的是Ubuntu-18.04,后续改为ubuntu-latest,此问题得到解决。

  2. 在远程自动执行hexo deploy时失败,显示没有访问权限

    后续发现是远程仓库密钥丢失问题。直接在本地生成新的密钥,然后参考Github Action文档生成密钥,然后复制到文档中提到的相应位置。

至此,就完成了hexo从旧电脑迁移到新电脑的过程了。