需求:在 Hexo 个人网站创建后,想要实现 Hexo 个人网站的备份,同时方便在不同的设备上(同步)修改该Hexo网站:
👇️ 总结 👇️
✔️ 方案一:在原Hexo存储库中 创建新分支 存放Hexo个人网站备份
✔️ 方案二:新建存储库专用于备份Hexo个人网站
方案一:在原Hexo存储库中 创建新分支 存放Hexo个人网站备份
Hexo博客工程与部署分支分离管理的流程
一、需求背景
需实现Hexo博客的双分支管理:
master分支:保留原有功能,作为Hexo生成的静态博客页面部署分支;
Hexo分支:存储完整的Hexo本地工程文件(配置、文章、主题等),用于工程备份与维护。
二、前置准备
- 已在GitHub创建仓库(示例:
xxxx/xxxx.github.io);
- 本地已安装Git、Node.js及Hexo环境;
- 本地Hexo工程目录:
D:\Website\Blog。
三、具体操作流程
步骤1:初始化本地Git仓库
在Hexo工程目录终端(PowerShell)执行:
1 2 3 4 5 6 7 8 9
| cd D:\Website\Blog
git init
git config --global user.name "你的GitHub账号" git config --global user.email "你的GitHub邮箱"
|
步骤2:创建并切换到Hexo分支
因远程无Hexo分支,需先创建本地分支:
终端提示Switched to a new branch 'Hexo'表示操作成功。
步骤3:配置.gitignore过滤冗余文件
创建.gitignore文件过滤不必要的内容(避免提交依赖、缓存等文件):
1 2
| "node_modules/`npublic/`n.deploy_git/`n.github/`ndb.json`n*.log`n.idea/" | Out-File -Encoding utf8 .gitignore
|
稍微详细一些的 .gitignore文件 如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| # Hexo 部署/缓存文件(核心过滤项) .deploy_git/ public/ db.json
# 依赖/日志文件 node_modules/ *.log npm-debug.log* yarn-debug.log* yarn-error.log*
# IDE/系统冗余文件 .idea/ .vscode/ .DS_Store Thumbs.db
|
步骤4:提交Hexo工程文件到本地Hexo分支
1 2 3 4 5
| git add .
git commit -m "init: 提交完整Hexo工程到Hexo分支"
|
步骤5:关联远程GitHub仓库并推送Hexo分支
1 2 3 4 5 6 7 8 9 10
| git remote rm origin
git remote add origin https://github.com/xxxx/xxxx.github.io.git
git remote add origin git@github.com:xxxx/xxxx.github.io.git
git push -u origin Hexo
|
推送时需输入:
- 用户名:你的GitHub用户名(如
immortal3180);
- 密码:GitHub Personal Access Token(需提前在GitHub生成,勾选
repo权限)。
修复SSH连接
若SSH端口22被拦截,修改SSH配置:
1 2
| notepad C:\Users\你的Windows用户名\.ssh\config
|
写入以下内容:
1 2 3 4 5
| Host github.com Hostname ssh.github.com Port 443 User git IdentityFile ~/.ssh/id_ed25519
|
验证SSH连接:
提示Hi xxxx! You've successfully authenticated...表示连接成功,再执行推送:
步骤6:确认master分支部署功能正常
检查Hexo配置文件_config.yml中的部署配置:
1 2 3 4
| deploy: type: git repo: https://github.com/xxxx/xxxx.github.io.git branch: master
|
测试部署:
1
| hexo clean && hexo g && hexo d
|
四、日常维护流程
1. 更新Hexo工程文件(Hexo分支)
1 2 3 4 5 6 7 8 9 10 11
| git checkout Hexo
git add .
git commit -m "update: 新增文章《XXX》/修改主题配置"
git push
|
2. 部署博客(master分支)
无需手动操作master分支,执行Hexo部署指令即可:
1
| hexo clean && hexo g && hexo d
|
五、验证成果
- 登录GitHub仓库,查看
branches选项,确认Hexo分支存在且包含工程文件;
- 访问
https://xxxx.github.io,确认博客页面正常显示。
六、常见问题解决
- 推送时提示权限不足:检查GitHub Token权限或SSH密钥配置;
- 分支切换失败:使用
git checkout -b 分支名创建新分支,避免直接切换不存在的分支;
- 文件未过滤:更新
.gitignore后执行git rm -r --cached .清除已暂存的冗余文件。
方案二:新建存储库专用于备份Hexo个人网站
你现在需要把 Hexo 工程推送到新创建的工程仓库的 master 分支(而非之前的 Hexo 分支)
适配需求:推送 Hexo 工程到新仓库的 master 分支
一、操作前提
- 已在 GitHub 新建工程仓库(示例:
xxxx/hexo-blog-source);
- 本地 Hexo 工程目录:
D:\Website\Blog;
- 已配置好
.gitignore 过滤冗余文件(核心工程文件已准备就绪)。
二、具体操作步骤
步骤1:切换到本地 master 分支(或创建并切换)
如果本地没有 master 分支,先创建;已有则直接切换:
1 2 3 4 5 6 7 8
| cd D:\Website\Blog
git checkout -b master
|
步骤2:关联新的工程仓库(替换为你的仓库地址)
先删除旧的远程关联,再关联新仓库:
1 2 3 4 5 6 7 8
| git remote rm origin
git remote add origin https://github.com/immortal3180/hexo-blog-source.git
|
步骤3:提交 Hexo 工程文件到本地 master 分支
1 2 3 4 5
| git add .
git commit -m "init: 推送Hexo工程源码到新仓库master分支"
|
步骤4:推送本地 master 分支到新仓库的 master 分支
1 2
| git push -u origin master
|
- 推送时若弹出认证窗口:
- 用户名:你的 GitHub 用户名(如
immortal3180);
- 密码:GitHub Personal Access Token(不是登录密码,需提前生成并勾选
repo 权限)。
步骤5:确认原博客仓库的部署配置不变
修改 _config.yml,确保 Hexo 部署仍指向原博客仓库的 master 分支,避免博客访问异常:
1 2 3 4
| deploy: type: git repo: https://github.com/xxxx/xxxx.github.io.git branch: master
|
三、验证操作结果
- 登录 GitHub 新工程仓库(
hexo-blog-source):
- 查看分支:确认
master 分支存在;
- 查看文件:确认包含 Hexo 工程核心文件(
_config.yml、source、themes 等),无 node_modules、public 等冗余文件。
- 测试博客部署:
1
| hexo clean && hexo g && hexo d
|
确认静态文件仍推送到原仓库 xxxx.github.io 的 master 分支,博客访问正常。
四、后续维护新仓库 master 分支的指令
当你修改 Hexo 工程(如新增文章、改主题配置)后,执行以下指令更新:
1 2 3 4 5 6 7 8 9 10 11
| git checkout master
git add .
git commit -m "update: 新增文章《XXX》/修改主题配色"
git push
|
总结
备份完成后,后续网站更新与维护的命令如下:
1 2 3
|
hexo c && hexo g && hexo d
|
1 2 3 4 5 6 7 8 9 10 11 12 13
|
git checkout master
git add .
git commit -m "update: 新增文章《XXX》/修改主题配色"
git push
|
1 2 3 4 5 6 7 8 9 10 11
|
git branch
git remote -v
git remote rm origin git remote add origin 新仓库地址
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
cd D:\Website\Blog
git clone https://github.com/immortal3180/hexo-blog-source.git .
npm install
npm install -g hexo-cli
deploy: type: git repo: https://github.com/immortal3180/immortal3180.github.io.git branch: master
hexo clean && hexo g && hexo s
git add . git commit -m "update: 新设备新增文章《XXX》" git push
git pull origin master --verbose
|