博客上传同步github教程
本文最后更新于 2026年6月25日 上午
Hexo博客一键发文完整流程(服务器自动部署版|新手保姆级教程)
一、整体架构说明(先看懂原理,后续不懵)
本次搭建采用双仓库+服务器定时自动同步方案,全程只需5条命令即可完成发文,无需手动传文件、无需配置GitHub Actions,服务器全自动兜底更新:
源码私有仓库:存放所有博客markdown原文、主题配置、站点配置,永久备份文章源码,防止文件丢失
静态公开仓库:存放Hexo编译后的html/css/js网页文件,浏览器实际访问的页面文件
服务器定时任务:每5分钟自动拉取GitHub最新静态页面,无需手动操作即可更新网站
核心分工:本地写文章→Hexo编译网页→推送双仓库→服务器自动同步站点,全程一条命令搞定全套流程
二、正式发文完整操作步骤(日常写博客只用这一套)
所有操作均在服务器普通用户下执行,禁止使用root超级管理员,避免权限错乱问题。
步骤1:进入博客根目录
1 | |
步骤2:新建一篇博客文章
1 | |
执行后会自动在
source/_posts目录生成对应的markdown文件使用vim编辑器打开文件,撰写博客正文内容,写完保存退出即可
如果是修改旧文章,直接跳过此步,直接编辑已有md文件就行
步骤3:编译网页 + 推送静态页面到GitHub公开仓库
1 | |
命令拆解(新手理解即可,不用单独执行):
hexo c:清理旧缓存、旧静态页面,避免页面渲染错乱hexo g:重新编译markdown文章,生成浏览器可访问的静态网页hexo d:自动将编译好的网页,推送到GitHub静态仓库
步骤4:手动立刻同步服务器网站(立即看到更新,不用等定时任务)
1 | |
作用:直接从GitHub拉取最新网页,覆盖服务器站点目录,刷新网站马上就能看到新文章。
补充:即便不执行这条命令,服务器每5分钟会自动执行一次该脚本,等待片刻网站也会自动更新。
步骤5:备份文章源码到GitHub私有仓库(防止服务器文件丢失)
1 | |
逐行通俗解释:
git add .:捕获本次所有修改的文件(新增/修改的文章、配置)git commit -m "备注":给本次改动打标签,记录这次更新了什么文章,方便后续回溯、恢复误删内容git push origin main:把所有文章源码上传到GitHub私有仓库,云端永久备份
三、极简速记版(日常直接复制粘贴,懒人专用)
1 | |
四、自动定时任务原理(答疑:5分钟自动上传是什么意思)
我们提前配置了服务器定时任务:每5分钟自动运行一次同步脚本,作用如下:
你写完文章执行
hexo d后,网页已经上传到GitHub定时任务会自动拉取GitHub最新网页,同步到服务器站点
定时任务只同步网页,不会帮你写文章、不会自动推送源码,发文和源码备份依旧需要手动执行命令
误区纠正:定时任务≠全自动发文,只是全自动更新网站页面,核心发文、源码备份依旧需要手动执行固定命令。
五、常见报错避坑指南(新手高频问题)
1. 报错:权限不足 EACCES: permission denied
原因:前期用root管理员配置环境,后续切换普通用户发文,文件权限归属错乱。
解决方案(root终端执行一次即可,永久解决):
1 | |
2. 执行命令后,GitHub看不到提交记录
原因:本次没有修改/新增任何文章,文件无变动,Git和Hexo不会生成新的提交记录,属于正常现象,无需处理。
3. 命令执行成功,网站看不到新文章
检查是否完整执行
hexo c && hexo g && hexo d,确保网页成功推送到GitHub手动执行一次同步脚本,强制刷新站点
清除浏览器缓存后重新访问
六、完整流程闭环总结
写文章 → Hexo编译网页 → 推送静态网页到GitHub
手动同步立刻更新网站 / 等待5分钟自动同步
Git备份源码到云端,双重保障文章不丢失
整套流程稳定无冗余,命令固定不变,后续所有发文都可以直接复用这套指令,零学习成本。