将基于github pages的hexo博客迁移到新电脑

本地仓库已经推到一个私有的git仓库中,且通过GitHub Actions 自动构建部署(解决异地更新),每次 push 自动构建并部署到 Pages。

因此,重装系统/更换电脑后直接从私有仓库 clone 即可,不必再从旧电脑拷贝整个文件夹。

私有仓库是博客的唯一真相源:文章、主题与站点配置、自定义脚本都在版本控制之下,随时可取回任意历史版本。

node_modules、public、db.json 等本机构建产物不入库,换电脑后由本机重新生成。

接下来就是在新电脑上启用运行环境。

一、GIT的安装与配置

安装git

  1. Git - Install for Windows,前往官网下载对应安装程序;

  2. 运行安装程序,点击下一步,第一个选项界面保持默认;

  3. 到选择默认编辑器处(default editor),可保持默认的VIM编辑器,也可以选择其他编辑器;

    若选择了其他编辑器,下方编注一个超链接,需点击前往对应编辑器的官网下载编辑器,安装完毕后才可继续git安装程序的下一步;

    如果安装了编辑器,git安装程序仍不可点击【NEXT】,则需要取消git安装程序,返回第2步重新安装。

  4. 接下来是自定义仓库主分支的名字,不修改则保持默认的“master”,第二个选项可自定义名称;

  5. 接下来选择git的启动方式,默认第二种即可(随意启动,不需要使用git bash);

  6. 选择所使用的SSH组件,默认即可(安装程序自带);

  7. 选择证书库,默认即可;

  8. 选择换行符格式,默认即可(Windows style);

  9. 选择git bash调用的终端程序(MSYS2或者CMD),可保持默认MSYS2;

  10. 选择使用git pull命令时的操作逻辑,建议默认即可;

  11. 选择账号认证界面,默认即可;

  12. 额外功能,保持默认开启缓存功能;

  13. 读条安装完毕;

总结:可一路按next闭眼安装。

生产SSH密钥,与账号进行绑定

  1. 开始菜单找到git bash,运行

  2. 配置本地用户名(仅用于生成SSH密钥,作用备注):

    1
    2
    git config --global user.name "你的用户名"
    git config --global user.email "邮箱"
  3. 生成目前所用电脑的SSH密钥(注意:C是大写):

    1
    ssh-keygen -t rsa -C "邮箱"

    输入命令回车后,会有两次让输入密码,如果是个人电脑,可以不输入密码,直接按回车跳过。

    如果输入了密码,以后操作git仓库时就会提示让输入密码进行验证,适合在办公电脑或对仓库管理有严格需求时。

  4. 查看公钥:

    1
    cat ~/.ssh/id_rsa.pub

    使用以上命令可查看公钥,然后选择右键点击复制即可。

    或者可以去对应的文件夹,使用记事本打开对应的文件再框选复制。

  5. 打开浏览器登录GitHub,在右上角点开[Settings]-[SSH and GPG keys]-[SSH keys]-右侧点击[New SSH keys],粘贴刚刚复制的SSH公钥

克隆博客仓库

SSH 公钥绑定完成后,在任意目录运行:

1
git clone git@github.com:magiku/magiku.hexo.git

进入 magiku.hexo 目录即拥有博客完整源码(文章、主题配置、自定义脚本全在内),无需任何文件拷贝。

二、安装NODE.JS与项目依赖

安装Node.js

  1. Node.js — Download Node.js®,前往官网下载页面,往下拉,在Or get a prebuilt Node.js® for WINDOWS那里点击Windows Installer (.msi)
  2. 运行安装程序,一路同意下一步即可。

安装项目依赖

  1. 在克隆下来的博客根目录,即拥有以下文件夹/文件的位置,打开git bash

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    magiku@magiku-PC MINGW64 /d/magiku/magiku.hexo
    $ ll
    total 5.5M
    -rw-r--r-- 1 magiku 197121 20K Oct 16 03:50 _config.butterfly.yml
    -rw-r--r-- 1 magiku 197121 0 Oct 16 2023 _config.landscape.yml
    -rw-r--r-- 1 magiku 197121 4.0K Oct 16 03:50 _config.yml
    -rw-r--r-- 1 magiku 197121 5.1M Oct 16 15:12 db.json
    drwxr-xr-x 1 magiku 197121 0 Oct 16 03:52 node_modules
    -rw-r--r-- 1 magiku 197121 134K Oct 16 03:52 package-lock.json
    -rw-r--r-- 1 magiku 197121 920 Oct 16 03:51 package.json
    drwxr-xr-x 1 magiku 197121 0 Oct 16 15:06 public
    drwxr-xr-x 1 magiku 197121 0 Jan 14 2026 scaffolds
    drwxr-xr-x 1 magiku 197121 0 Oct 16 03:20 scripts
    drwxr-xr-x 1 magiku 197121 0 Oct 16 03:20 source
    drwxr-xr-x 1 magiku 197121 0 Jan 11 2026 themes
    drwxr-xr-x 1 magiku 197121 0 Oct 15 21:14 tools

    node_modules/、public/、db.json 是本机构建产物,不在仓库里(.gitignore 已排除),clone 后由 npm ci 与 hexo generate 生成;目录中还有两个隐藏项:.github/(CI 工作流)与 .gitignore。

  2. 运行以下命令,按 package-lock.json 精确安装全部依赖。hexo、hexo-deployer-git 等组件均已声明在 package.json 中,无需再单独安装任何东西:

    1
    npm ci
  3. 接下来就可以测试博客能否正常编译运行:

    1
    2
    3
    npx hexo clean
    npx hexo generate
    npx hexo server

    浏览器访问 localhost:4000 确认博客正常渲染,迁移即告完成。

三、正常编辑与上传博客

准备工作

在多台电脑交替写作,或上次编辑没有完全收尾的情况下,动手写新文章前先做两步检查,避免旧残留和新改动混在一起:

  1. 检查本地状态,确认没有上次遗留的未提交修改或未推送的提交:

    1
    git status

    若存在未提交的修改,先决定去留:需要保留的,按下面的流程提交并推送干净;确认无用的再丢弃。切勿带着旧改动混进下一次提交。

  2. 拉取远程最新源码,确保本地与私有仓库一致后再开始创作:

    1
    git pull

    若拉取时报冲突,说明两台电脑改到了同一处,手动解决冲突后再继续。

编辑与发布

  1. 在博客文件夹下使用git bash执行命令:

    1
    npx hexo new post 文章代号
  2. 打开博客文件夹/source/_posts,找到刚刚新建出来的markdown文件,打开进行编辑创作。

  3. 发布(常规方式):编辑完成后,提交并推送到 GitHub:

    1
    2
    3
    git add .
    git commit -m "新增文章:文章代号"
    git push

    push 之后,仓库内置的 GitHub Actions 会自动执行「安装依赖 → 构建静态站点 → 部署到 magiku.github.io」全流程,一两分钟后线上生效。新电脑上无需任何额外配置——CI 所需的部署凭据已存放在仓库 Secrets 中。

  4. 应急方式:CI 异常或需要立即上线时,也可以跳过推送,在本机直接部署(需已完成第一步的 SSH 配置):

    1
    2
    3
    npx hexo clean
    npx hexo generate
    npx hexo deploy