GitHub Pages + Actions:打造可自动发布的个人网站主页
2026 年,GitHub 账号几乎成了开发者的标配,但大多数人的主页还停留在“一张 README 加几个热门仓库”的状态。我见过不少朋友把个人网站这件事想得过于复杂,觉得要么得有台云服务器,要么得会前端工程化,要么得花钱买主题。实际上,用 GitHub 构建个人网站主页,真正难的不是技术,而是很多人没有把它当成一个“可维护、可追溯、可自动发布”的小型工程来做。
这篇文章不教你做一个花里胡哨的落地页,而是从工程视角,带着你把一条“写内容 → 自动构建 → 自动发布 → 长期维护”的链路跑通。我会把每一步拆到能直接照着操作,也会解释每个关键选择背后的原因。读完你应该能亲手部署一个属于自己的主页,并且知道后面想加博客、作品集、文档站时该怎么演进。
1. 重新认识 GitHub Pages:它不是免费建站工具,而是一条静态发布流水线
很多人把 GitHub Pages 简单理解成“GitHub 给开发者提供的免费静态网站托管服务”。这个说法没错,但它掩盖了真正重要的东西。GitHub Pages 真正的价值,在于它把你的网站内容和 Git 工作流绑在了一起。每一次提交,都对应一个可以被回滚、被审计、被复现的站点版本。这比手动登录服务器改文件、再打包上传要可靠得多。
1.1 个人主页的三种形态:静态页面、代码工程、发布管道
做一个个人主页,至少有三种理解方式。
第一种是“静态页面”。你写一个 index.html,扔到服务器上,能访问就算成功。这种做法最快,但后续想改点内容,得重新编辑 HTML、重新上传,而且没有任何版本管理。页面多了以后,改导航栏这种小事会变成噩梦。
第二种是“代码工程”。把个人网站当成一个仓库来管理,使用 Markdown 写内容,通过静态站点生成器构建出 HTML,再部署到 GitHub Pages。这时候,网站的前端代码、文章源文件、构建配置都留在仓库里,任何改动都有历史记录。这也是我推荐大多数人的起点。
第三种是“发布管道”。你不但有源代码,还配置了自动构建和自动部署。每次把修改推到主分支,GitHub Actions 自动安装依赖、生成静态文件、发布到 Pages 环境。整个过程不需要你手动执行命令。到了这个阶段,你的个人网站才真正变成一条流水线:本地只负责写内容,云端负责构建和发布。
从第一种走到第三种,不是技术难度的问题,而是工作习惯的问题。很多人卡在第二步,总觉得要先学完 HTML、CSS、JavaScript 才能开工,结果拖了半年还没有页面。
1.2 为什么选择 GitHub Pages 而不是直接在云服务器上部署
先对比一下两种常见思路。
在云服务器上部署个人网站,意味着你需要自己管理操作系统、Web 服务器、HTTPS 证书、进程守护、备份策略。光是“让网站在服务器重启后自动恢复”这件事,就足够劝退一批只想维护内容的人。如果你本来就有服务器运维需求,那另当别论;如果只是为了一个个人主页,这属于杀鸡用牛刀。
GitHub Pages 的定位完全不同。它只托管静态文件,不需要你维护服务器,自带 HTTPS,还和 Git 工作流无缝集成。你不需要关心 CDN 边缘节点怎么配置,也不需要半夜爬起来处理证书过期。它适合的是“内容型站点”:个人简历、作品集、博客、项目文档、知识库索引。
但它的边界也很清楚。Pages 不是动态应用服务器,不能运行 PHP、Node.js 后端,也不能保存用户提交的表单数据。如果你要做的是带登录、数据库、实时交互的产品,那应该去找云服务器或云开发平台,而不是硬塞进 Pages。理解了这一步,你就不会在错误的方向上浪费时间。
2. 把“个人网站”当工程来做:仓库结构、命名与最小可运行版本
我见过不少新手第一步就去找 Hugo 主题、Hexo 主题,折腾半天主题配置,结果连“如何在本地看到一个页面”都没跑通。这里我更建议一个反直觉的做法:先做一个没有任何框架的最小首页,把它推到 GitHub 上,看到线上能访问,再谈主题和博客框架。
2.1 仓库命名:username.github.io 背后的约定
GitHub Pages 提供两种常见站点类型:个人/组织站点和项目站点。个人站点有一个特殊的仓库命名规则:<你的用户名>.github.io。
举个