很多人插了旗,却没把地圈起来。今天,我们用 30 分钟结束战斗
我做了六个 app,每个都需要一个落地页。试过 Vercel、Netlify、自己租 VPS——最后全部迁回 GitHub Pages。
原因很简单:免费、不需要登第三方平台、每次 git push 自动上线。配好一次,之后写内容只需要推代码。
这篇是可以跟着操作的教程,接上一篇「注册域名 + 接管 DNS」,域名已经接入 Cloudflare 的同学可以直接跟着做。没有域名也没关系,用 用户名.github.io 同样可以跑起来。
你需要准备的三件事
- GitHub 账号(没有去 github.com 注册,免费)
- Git(本地需要安装,git-scm.com 下载)
- 域名(可选,参考第一篇;没有的话用 用户名.github.io 访问也行)
第一步:新建 GitHub 仓库
第 1 步 — 创建仓库
登录 GitHub,点右上角「+」→「New repository」。
仓库名有两种选择:
- 想用 用户名.github.io 访问 → 仓库名必须是 <你的用户名>.github.io
- 绑自定义域名 → 仓库名随意,比如 my-site
选「Public」(GitHub Pages 免费版只支持公开仓库),勾选「Add a README file」,点「Create repository」。
第 2 步 — 克隆到本地
git clone https://github.com/<你的用户名>/<仓库名>.git
cd <仓库名>
第二步:选择建站方式
方式 A:静态 HTML(最简单,适合落地页)
在仓库根目录放一个 index.html,GitHub Pages 直接识别,不需要任何配置。
适合:单页落地页、app 介绍页、简历页。
方式 B:Hugo(推荐,我在用的)
Hugo 是目前最快的静态网站生成器。写 Markdown,Hugo 自动生成 HTML,支持主题,扩展性强。
如果你需要多篇文章、博客功能、SEO 配置,选 Hugo。
安装 Hugo:
# macOS
brew install hugo
# 验证
hugo version
在仓库目录初始化 Hugo 项目:
hugo new site . --force
git init
安装主题(以 PaperMod 为例):
git submodule add --depth=1 https://github.com/adityatelange/hugo-PaperMod.git themes/PaperMod
在 hugo.toml 里更新配置:
baseURL = 'https://example.org/'
languageCode = 'zh-cn'
title = '你的网站名称'
theme = "PaperMod"
title 填你想显示的站名,baseURL 后面绑域名后再改成你的域名。
写一篇 Hello World 验证环境:
打开 content/posts/hello-world.md,把 draft: true 改成 false:
本地预览:
hugo server -D
打开 localhost:1313,能看到 Hello World 那篇说明环境没问题。改了文件实时刷新,不需要重启。
第三步:配置 GitHub Actions 自动部署
手动 build 再上传是一次性的工作。配好 GitHub Actions,之后每次 git push 自动构建部署,一行命令搞定。
在仓库根目录创建 .github/workflows/deploy.yml:
name: Deploy Hugo site
on:
push:
branches: [main]
permissions:
contents: read
pages: write
id-token: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Setup Hugo
uses: peaceiris/actions-hugo@v3
with:
hugo-version: latest
extended: true
- name: Build
run: hugo --minify
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./public
deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
steps:
- name: Deploy to GitHub Pages
uses: actions/deploy-pages@v4
然后开启 GitHub Pages 的部署来源:仓库 → Settings → Pages → Source,选「GitHub Actions」。
提交推送:
git add .
git commit -m "init hugo site"
git push origin main
进入仓库 → Actions,看到绿色勾,部署成功。第一次大概 1-2 分钟。

第四步:绑定自定义域名
上一篇配好 Cloudflare 的同学,直接在 GitHub 做最后一步。
第 1 步 — 仓库 Settings → Pages → Custom domain
填入你的根域名,比如 anotherbug.com(不加 www),点「Save」。
GitHub 会自动在仓库创建 CNAME 文件,内容就是你填的域名。

第 2 步 — 等 DNS 检查通过
页面显示「DNS Check in Progress」属正常,等几分钟刷新。
用了 Cloudflare Proxied(橙色云朵)的注意: 会一直卡在 In Progress,这是正常现象,不是配错了。原因:橙色云朵模式下,流量经过 Cloudflare 中转,对外暴露的是 Cloudflare 的 IP。GitHub 做 DNS 检查时看到 Cloudflare 的 IP,不认识,所以验证不过。灰色云朵(DNS only)则直接解析到 GitHub Pages 的真实 IP,GitHub 能认出来。解决方法:去 Cloudflare → DNS → Records,把域名的 A 记录和 CNAME 暂时改成灰色(DNS only)。等 GitHub DNS check 通过变绿,再改回橙色。Cloudflare 的 CDN 和防护重新生效。
- 绿色「DNS check successful」→ 通过
- 仍报错 → DNS 还在传播,等一会儿重试
第 3 步 — HTTPS
DNS 通过后勾选「Enforce HTTPS」。
如果用 Cloudflare Proxied 模式,「Enforce HTTPS」显示 Unavailable 是正常的——SSL 已经由 Cloudflare 接管,访问依然是加密的。
如果没有域名,直接用 GitHub 子域名
不绑自定义域名也完全没问题。
仓库名设成 <你的用户名>.github.io,部署成功后直接访问 https://<你的用户名>.github.io,SSL 自动生效,不需要任何额外配置。
等你有了域名,再绑进来,步骤一样。
四步流程,走一遍就懂了
- 新建 GitHub 仓库 → Public,加 README
- 选建站方式 → 静态 HTML(简单)或 Hugo(扩展性强)
- 配 .github/workflows/deploy.yml,push 自动部署
- 仓库 Settings → Pages → 填自定义域名(可选)
第一次配的时候我花了半天。
现在给你的时间是 30 分钟。
配完之后,往后写文章、改落地页,只需要一行 git push,两分钟自动上线。这才是值得投入一次的事。
你的网站叫什么名字?把链接发来让我看看。
下一篇:我的独立开发工具箱(软件篇)——从写代码到上线收款,我实际在用的工具清单。

