博客上传同步github教程

本文最后更新于 2026年6月25日 上午

Hexo博客一键发文完整流程(服务器自动部署版|新手保姆级教程)

一、整体架构说明(先看懂原理,后续不懵)

本次搭建采用双仓库+服务器定时自动同步方案,全程只需5条命令即可完成发文,无需手动传文件、无需配置GitHub Actions,服务器全自动兜底更新:

  1. 源码私有仓库:存放所有博客markdown原文、主题配置、站点配置,永久备份文章源码,防止文件丢失

  2. 静态公开仓库:存放Hexo编译后的html/css/js网页文件,浏览器实际访问的页面文件

  3. 服务器定时任务:每5分钟自动拉取GitHub最新静态页面,无需手动操作即可更新网站

核心分工:本地写文章→Hexo编译网页→推送双仓库→服务器自动同步站点,全程一条命令搞定全套流程

二、正式发文完整操作步骤(日常写博客只用这一套)

所有操作均在服务器普通用户下执行,禁止使用root超级管理员,避免权限错乱问题。

步骤1:进入博客根目录

1
cd ~/blog

步骤2:新建一篇博客文章

1
hexo new post "文章标题"
  • 执行后会自动在 source/_posts 目录生成对应的markdown文件

  • 使用vim编辑器打开文件,撰写博客正文内容,写完保存退出即可

  • 如果是修改旧文章,直接跳过此步,直接编辑已有md文件就行

步骤3:编译网页 + 推送静态页面到GitHub公开仓库

1
hexo c && hexo g && hexo d

命令拆解(新手理解即可,不用单独执行):

  • hexo c:清理旧缓存、旧静态页面,避免页面渲染错乱

  • hexo g:重新编译markdown文章,生成浏览器可访问的静态网页

  • hexo d:自动将编译好的网页,推送到GitHub静态仓库

步骤4:手动立刻同步服务器网站(立即看到更新,不用等定时任务)

1
bash /home/shao/update_blog.sh

作用:直接从GitHub拉取最新网页,覆盖服务器站点目录,刷新网站马上就能看到新文章

补充:即便不执行这条命令,服务器每5分钟会自动执行一次该脚本,等待片刻网站也会自动更新。

步骤5:备份文章源码到GitHub私有仓库(防止服务器文件丢失)

1
2
3
git add .
git commit -m "本次更新:填写文章标题"
git push origin main

逐行通俗解释:

  1. git add .:捕获本次所有修改的文件(新增/修改的文章、配置)

  2. git commit -m "备注":给本次改动打标签,记录这次更新了什么文章,方便后续回溯、恢复误删内容

  3. git push origin main:把所有文章源码上传到GitHub私有仓库,云端永久备份

三、极简速记版(日常直接复制粘贴,懒人专用)

1
2
3
4
5
6
7
cd ~/blog
hexo new post "文章标题"
hexo c && hexo g && hexo d
bash /home/shao/update_blog.sh
git add .
git commit -m "更新:xxx文章"
git push origin main

四、自动定时任务原理(答疑:5分钟自动上传是什么意思)

我们提前配置了服务器定时任务:每5分钟自动运行一次同步脚本,作用如下:

  1. 你写完文章执行 hexo d 后,网页已经上传到GitHub

  2. 定时任务会自动拉取GitHub最新网页,同步到服务器站点

  3. 定时任务只同步网页,不会帮你写文章、不会自动推送源码,发文和源码备份依旧需要手动执行命令

误区纠正:定时任务≠全自动发文,只是全自动更新网站页面,核心发文、源码备份依旧需要手动执行固定命令。

五、常见报错避坑指南(新手高频问题)

1. 报错:权限不足 EACCES: permission denied

原因:前期用root管理员配置环境,后续切换普通用户发文,文件权限归属错乱。

解决方案(root终端执行一次即可,永久解决):

1
chown -R shao:shao /home/shao/blog

2. 执行命令后,GitHub看不到提交记录

原因:本次没有修改/新增任何文章,文件无变动,Git和Hexo不会生成新的提交记录,属于正常现象,无需处理。

3. 命令执行成功,网站看不到新文章

  1. 检查是否完整执行 hexo c && hexo g && hexo d,确保网页成功推送到GitHub

  2. 手动执行一次同步脚本,强制刷新站点

  3. 清除浏览器缓存后重新访问

六、完整流程闭环总结

  1. 写文章 → Hexo编译网页 → 推送静态网页到GitHub

  2. 手动同步立刻更新网站 / 等待5分钟自动同步

  3. Git备份源码到云端,双重保障文章不丢失

整套流程稳定无冗余,命令固定不变,后续所有发文都可以直接复用这套指令,零学习成本。


博客上传同步github教程
http://example.com/18ec86f9.html
作者
SHAO
发布于
2026年6月18日
许可协议