📚 Hexo 博客完全操作手册 & 错误解决大全
基于 Maxkore 亲身经历的完整总结
涵盖日常操作、Git 工作流、各类报错解决方案
最后更新:2026年2月23日
📋 一、博客日常操作(标准流程)
1.1 写新文章
1 2 3 4 5 6 7 8
| cd /e/MyBlog
hexo new "文章标题"
notepad source/_posts/文章标题.md
|
文章头部格式示例:
1 2 3 4 5 6
| --- title: 文章标题 date: 2026-02-23 13:26:02 tags: [标签1, 标签2] categories: [分类名] ---
|
1.2 ⚠️ 创建文章时的常见错误
错误示例:命令中包含特殊符号
1 2 3
| hexo new "Hexo 博客 & 错误解决大全" && notepad source/_posts/Hexo 博客 & 错误解决大全.md bash: 错误解决大全.md: command not found
|
✅ 正确方法 1:分两步执行(最稳妥)
1 2 3 4 5
| hexo new "文章标题"
notepad source/_posts/文章标题.md
|
✅ 正确方法 2:用引号保护特殊字符
1
| hexo new "Hexo 博客 & 错误解决大全" && notepad "source/_posts/Hexo 博客 & 错误解决大全.md"
|
✅ 正确方法 3:文件名用短横线避免特殊字符
1
| hexo new "hexo-complete-manual" && notepad source/_posts/hexo-complete-manual.md
|
如果文章已创建但打不开
1 2 3 4 5
| ls -l source/_posts/
notepad "source/_posts/文章标题.md"
|
1.3 本地预览
1 2 3
| hexo server
hexo s -p 4001
|
访问 http://localhost:4000 查看效果
按 Ctrl + C 停止预览
1.4 部署上线
1 2 3 4 5 6 7
| hexo clean hexo generate hexo deploy
hexo clean && hexo g -d
|
1.5 修改文章
1 2 3 4 5
| notepad source/_posts/文章标题.md
hexo clean && hexo g -d
|
1.6 删除文章
1 2 3 4 5
| rm source/_posts/要删除的文章.md
hexo clean && hexo g -d
|
1.7 创建独立页面
1 2 3 4 5
| hexo new page about
touch source/自定义页面.html
|
🌐 二、自定义域名配置与修复
2.1 首次配置自定义域名
在 GitHub 设置
- 进入仓库 Settings → Pages
- 在 Custom domain 输入你的域名(如
maxkore.bbroot.com)
- 点击 Save
- 勾选 Enforce HTTPS(等几分钟后出现)
创建 CNAME 文件(防止域名被清空)
1 2 3 4 5 6 7 8 9
| cd /e/MyBlog
echo "你的域名" > source/CNAME
cat source/CNAME
|
2.2 ⚠️ 域名消失问题修复(重要!)
现象:每次部署后,GitHub Pages 设置里的自定义域名输入框被清空
原因:CNAME 文件缺失、内容错误或未被正确提交
修复步骤:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| cd /e/MyBlog cat source/CNAME
echo -n "maxkore.bbroot.com" > source/CNAME
cat source/CNAME
git add source/CNAME git commit -m "修复 CNAME 文件,确保域名永久生效" git push
hexo clean && hexo g -d
|
验证是否成功:
- 访问 GitHub 仓库:
https://github.com/你的用户名/你的用户名.github.io
- 查看根目录是否有
CNAME 文件
- 点开文件,内容应为你的域名(如
maxkore.bbroot.com)
- 去 Settings → Pages,域名应该已经自动填好
2.3 域名消失的常见原因
| 可能原因 |
说明 |
解决方法 |
| CNAME 文件不存在 |
忘记创建 |
echo "域名" > source/CNAME |
| CNAME 文件内容错误 |
有多余空格或换行 |
用 echo -n 重新创建 |
| CNAME 文件没提交 |
只创建没推送 |
git add + git commit + git push |
| 文件在错误位置 |
不在 source/ 下 |
移到 source/ 文件夹 |
| GitHub 缓存 |
系统没及时更新 |
手动重新输入保存 |
2.4 永久解决方案
1 2 3 4 5 6 7 8 9 10 11
| cd /e/MyBlog echo -n "maxkore.bbroot.com" > source/CNAME
git add source/CNAME git commit -m "添加 CNAME 文件,确保自定义域名永久生效" git push
hexo clean && hexo g -d
|
🔧 三、Git 工作流与同步
3.1 日常 Git 操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| git status
git add .
git commit -m "提交说明"
git push
git pull
|
3.2 完整推送流程
1 2 3 4
| git add . git commit -m "更新说明" git pull origin master git push origin master
|
3.3 强制推送(仅在必要时)
1
| git push -f origin master
|
🚨 四、错误解决大全
4.1 YAML 解析错误
错误信息:
1
| YAMLException: can not read a block mapping entry
|
原因:文章开头的配置格式错误
解决:
- 检查
: 后面是否有空格
- 确保缩进正确
- 示例正确格式:
1 2 3
| title: 正确格式 tags: [标签] tags: [标签]
|
4.2 部署失败 - 网络问题
错误信息:
1
| fatal: unable to access '...': Recv failure: Connection was reset
|
原因:GitHub 网络波动
解决:
1 2 3 4 5 6 7 8 9
| hexo clean && hexo g -d
git add . git commit -m "更新" git push
|
4.3 Git 推送被拒绝
错误信息:
1
| ! [rejected] master -> master (fetch first)
|
原因:远程有本地没有的更新
解决:
1 2
| git pull origin master git push origin master
|
4.4 合并冲突
错误信息:
1
| Automatic merge failed; fix conflicts and then commit the result.
|
现象:处于 (master|MERGING) 状态
解决:
1 2 3 4 5 6 7 8 9 10 11
| git status
git add .
git commit -m "解决合并冲突"
git push origin master
|
4.5 子模块错误
错误信息:
1
| fatal: No url found for submodule path '.deploy_git' in .gitmodules
|
原因:Git 误将文件夹当作子模块
解决:
1 2 3 4 5 6
| rm -rf .gitmodules git rm --cached .deploy_git git add . git commit -m "移除子模块配置" git push
|
4.6 SSH 密钥问题
错误信息:
1
| git@github.com: Permission denied (publickey)
|
原因:SSH 密钥未配置或密码错误
解决:
1 2 3 4 5 6 7 8 9
| ssh-keygen -t rsa -b 4096 -C "你的邮箱"
cat ~/.ssh/id_rsa.pub
|
4.7 Token 认证问题
错误信息:
1
| remote: Invalid username or token.
|
原因:Token 错误或过期
解决:
1 2 3
| git remote set-url origin https://用户名:新token@github.com/用户名/仓库名.git git push
|
4.8 本地预览端口被占用
错误信息:
1
| Error: listen EADDRINUSE
|
解决:
4.9 文章不显示
现象:部署成功但文章没出现
原因:文章头部格式错误
解决:
- 检查
date 格式是否正确
- 确保
title 不为空
- 运行
hexo clean 后重新生成
📝 五、配置文件详解
5.1 主配置文件 _config.yml
1 2 3 4 5 6 7 8 9 10 11 12 13
| title: 博客标题 subtitle: 副标题 description: 描述 author: 作者名 language: zh-CN timezone: Asia/Shanghai
deploy: type: git repo: git@github.com:用户名/用户名.github.io.git branch: master
|
5.2 NexT 主题配置 themes/next/_config.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| menu: home: / || fa fa-home archives: /archives/ || fa fa-archive tags: /tags/ || fa fa-tags about: /about/ || fa fa-user
avatar: url: /images/avatar.gif
social: GitHub: https://github.com/你的用户名 || fab fa-github
|
🧹 六、日常维护清单
6.1 每周任务
6.2 每月任务
6.3 域名维护(重要)
📌 七、常用命令速查表
| 命令 |
作用 |
场景 |
hexo new "标题" |
新建文章 |
写作 |
hexo s |
本地预览 |
检查效果 |
hexo clean |
清理缓存 |
解决异常 |
hexo g |
生成静态文件 |
部署前 |
hexo d |
部署 |
上线 |
hexo clean && hexo g -d |
一键部署 |
日常发布 |
git status |
查看状态 |
检查更改 |
git add . |
添加更改 |
提交前 |
git commit -m "说明" |
提交 |
本地记录 |
git push |
推送 |
同步 GitHub |
git pull |
拉取 |
获取更新 |
echo -n "域名" > source/CNAME |
创建 CNAME |
域名配置 |
💡 八、经验总结
8.1 黄金法则
- 写文章前:先
git pull 确保最新
- 部署前:先
hexo clean 避免缓存问题
- 遇到错误:先看错误日志,再搜解决方案
- 重要操作前:先备份
source/ 文件夹
- 域名配置:永远在
source/ 下放 CNAME 文件
8.2 创建文章注意事项
| 注意点 |
正确做法 |
标题包含 & 符号 |
用引号括起来,或分步执行 |
| 标题包含空格 |
用引号括起来 |
| 同时打开编辑器 |
分两步执行:先 hexo new,再 notepad |
| 文件名过长 |
用短横线连接,避免特殊字符 |
8.3 常见误区
- ❌ 直接在 GitHub 网页修改文件
- ❌ 忘记
: 后的空格
- ❌ 提交
node_modules/ 到仓库
- ❌ 推送前不拉取远程更新
- ❌ 忘记检查 CNAME 文件(导致域名消失)
- ❌ 命令中包含
& 等特殊字符不加处理
8.4 最佳实践
- ✅ 每次写文章前
git pull
- ✅ 每次部署用
hexo clean && hexo g -d
- ✅ 定期备份
source/ 文件夹
- ✅ 写提交信息时用中文说明
- ✅ 每月检查一次 CNAME 文件(防患未然)
- ✅ 创建文章时分两步执行(避免命令解析错误)
🎉 九、恭喜!
你现在拥有:
- ✅ 完整的博客操作知识
- ✅ 所有常见错误的解决方案
- ✅ 自定义域名永久保留的秘籍
- ✅ 创建文章时的避坑指南
- ✅ 一套标准化的发布流程
- ✅ 可随时查阅的维护手册
从此写博客只需三步:
1 2 3
| hexo new "新文章" # 写 hexo clean && hexo g -d # 发 git push # 备(可选)
|
域名永久保留:
1
| echo -n "你的域名" > source/CNAME # 一次配置,永久有效
|
创建文章避坑:
1 2 3
| # 稳妥的两步法 hexo new "文章标题" notepad "source/_posts/文章标题.md"
|
本手册由 Maxkore 基于真实经历编写
博客示例:https://maxkore.bbroot.com
最后更新:2026年2月23日
特别章节:自定义域名消失问题 & 创建文章避坑指南