hexo
博客搭建可以看这里。
问题描述
博客搭建环境:hexo
+gitpage
,本地编写·markdown
文件,通过hexo g -d
渲染后上传至github repo
。
相较于wordpress
,hexo
框架的博客编写基本是在本地完成,在其他机器写博客时需要备份并重新配置环境。但是nodejs
环境文件很多,备份起来相当麻烦。
解决方案
大致有两种方案:
创建备份
这里我主要记录github
分支的方式:主分支用于渲染github page
,分支用于备份hexo源文件。
在hexo根目录下创建git
最新版的hexo
在初始化之后是没有.git
目录的,通过_config.yml
里面的deploy
参数生成.deploy_git
目录,并在通过该目录进行push
操作。因此,我们直接在hexo
根目录下创建.git
目录和.gitignore
并不会冲突。
先另外找一个文件夹把github上面的整个hexo项目先克隆 下来,然后复制其中的.git
目录到hexo
的根目录下。在hexo的根目录下进行如下操作:
新建.gitignore
文件,排除剩下的不需要备份的文件。内容如下:
.DS_Store Thumbs.db db.json *.log node_modules/ public/ .deploy*/ .vscode/ _multiconfig.yml
|
右键打开Open Git Bash here,输入以下内容:
在刚刚创建好.git
的hexo
的根目录下执行:这里以 hexoBackup
分支为例。
- 查看所有分支,包括 本地的 和 远程的:
git branch -a
- 查看本地分支:
git branch
- 查看远程分支:
git branch -r
- 创建本地分支:
git branch hexoBackup
- 查看本地分支 :
git branch
- 切换到 hexoBackup 分支上:
git checkout hexoBackup
- 删除本地 main 分支 防止误推送:
git branch -d main
- 查看本地分支 :
git branch
- 加载 要推送的文件 :
git add .
- 备注更新 : ` git commit -m “2025.5.28”
- 推送到 hexoBackup 分支上:
git push origin hexoBackup
所有代码如下:
Administrator@DESKTOP-7B17KPG MINGW64 /g/hexo-个人博客/Hexo-Blog-next8.20/blog-demo (main) $ git branch -a * main remotes/origin/HEAD -> origin/main remotes/origin/main
Administrator@DESKTOP-7B17KPG MINGW64 /g/hexo-个人博客/Hexo-Blog-next8.20/blog-demo (main) $ git branch * main
Administrator@DESKTOP-7B17KPG MINGW64 /g/hexo-个人博客/Hexo-Blog-next8.20/blog-demo (main) $ git branch -r origin/HEAD -> origin/main origin/main
Administrator@DESKTOP-7B17KPG MINGW64 /g/hexo-个人博客/Hexo-Blog-next8.20/blog-demo (main) $ git branch hexoBackup
Administrator@DESKTOP-7B17KPG MINGW64 /g/hexo-个人博客/Hexo-Blog-next8.20/blog-demo (main) $ git branch hexoBackup * main
Administrator@DESKTOP-7B17KPG MINGW64 /g/hexo-个人博客/Hexo-Blog-next8.20/blog-demo (main) $ git checkout hexoBackup D "Blog \345\233\276\345\272\212\346\226\271\346\241\210\357\274\232Backblaze B2 # ....省略了大部分 "\351\200\232\350\277\207Docker\345\256\211\350\243\205\345\260\217\351\233\205Alist/index.html" Switched to branch 'hexoBackup'
Administrator@DESKTOP-7B17KPG MINGW64 /g/hexo-个人博客/Hexo-Blog-next8.20/blog-demo (hexoBackup) $ git branch -d main # 删除本地 main 分支 防止误推送 Deleted branch main (was 23d3ff3).
Administrator@DESKTOP-7B17KPG MINGW64 /g/hexo-个人博客/Hexo-Blog-next8.20/blog-demo (hexoBackup) $ git branch # 查看本地分支, * hexoBackup
Administrator@DESKTOP-7B17KPG MINGW64 /g/hexo-个人博客/Hexo-Blog-next8.20/blog-demo (hexoBackup) $ git add . # 加载 要推送的文件 warning: in the working copy of 'google.json', LF will be replaced by CRLF the next time Git touches it #... 省略 hint: See "git help submodule" for more information. hint: Disable this message with "git config set advice.addEmbeddedRepo false"
Administrator@DESKTOP-7B17KPG MINGW64 /g/hexo-个人博客/Hexo-Blog-next8.20/blog-demo (hexoBackup) $ git commit -m "2025.5.28" # 备注更新 [hexoBackup b132b90] 2025.5.28 177 files changed, 16236 insertions(+), 47367 deletions(-) # ....省略 create mode 100644 "\351\203\250\347\275\262blog.bat"
Administrator@DESKTOP-7B17KPG MINGW64 /g/hexo-个人博客/Hexo-Blog-next8.20/blog-demo (hexoBackup) $ git push origin hexoBackup # 推送到 hexoBackup 分支上 Enumerating objects: 61, done. Counting objects: 100% (61/61), done. Delta compression using up to 16 threads # ...省略 * [new branch] hexoBackup -> hexoBackup
Administrator@DESKTOP-7B17KPG MINGW64 /g/hexo-个人博客/Hexo-Blog-next8.20/blog-demo (hexoBackup) $
|
此时已经备份完毕了。
迁移与复原
新环境配置
npm install -g hexo-cli hexo init
|
克隆备份分支
将原来的source
, package.json
等文件克隆到hexo
根目录下
git clone -b hexo_backup [email protected]:[username]/[username].github.io.git npm install
|
渲染与推送
hexo clean hexo g -d # 生成新的页面并推送至主分支
|
主分支利用hexo
自身集成的git
组件进行推送。