用途
gh-pages-deploy 用于将静态前端网站部署到 GitHub Pages,整个过程通过 GitHub CLI(gh)完成。当用户想要发布、分享或让任何 HTML/CSS/JS 前端内容可被访问时,可以使用该技能。
前置条件
- 已安装并完成认证的 GitHub CLI(gh)
- 已安装 Git
- 一个准备部署的前端项目(HTML、CSS、JS)
主要能力与部署流程
-
初始化 Git 仓库(如需要):
git init git add . git commit -m "Initial commit" -
创建 GitHub 仓库:
# 创建公共仓库(免费 GitHub Pages 必需) gh repo create <repo-name> --public --source=. --push -
启用 GitHub Pages:
# 从 main 分支根目录启用 GitHub Pages gh api repos/{owner}/{repo}/pages -X POST -f build_type=legacy -f source='{"branch":"main","path":"/"}'或使用 docs 文件夹:
gh api repos/{owner}/{repo}/pages -X POST -f build_type=legacy -f source='{"branch":"main","path":"/docs"}' -
检查部署状态:
# 获取 pages 信息 gh api repos/{owner}/{repo}/pages # 查看部署状态 gh api repos/{owner}/{repo}/pages/builds/latest -
在仓库设置中设置主页 URL(始终执行此步骤,用于在 GitHub 仓库 About 面板中设置实时 URL):
OWNER=$(gh api user --jq '.login') PAGES_URL=$(gh api repos/$OWNER/$REPO_NAME/pages --jq '.html_url') gh api --method PATCH repos/$OWNER/$REPO_NAME --field homepage="$PAGES_URL" --jq '.homepage' -
获取站点 URL:站点将可通过 https://<username>.github.io/<repo-name>/ 访问。自动部署已激活:每次推送到 main 分支都会触发重建,legacy 构建无需 GitHub Actions。
使用方式:快速部署脚本
一次性完成完整部署:
# 变量
REPO_NAME="my-site"
# 初始化并提交
git init
git add .
git commit -m "Initial commit"
# 创建仓库并推送
gh repo create $REPO_NAME --public --source=. --push
# 启用 pages
sleep 2
OWNER=$(gh api user --jq '.login')
gh api repos/$OWNER/$REPO_NAME/pages -X POST -f build_type=legacy -f source='{"branch":"main","path":"/"}'
# 在仓库 About 面板中设置主页 URL
PAGES_URL="https://$OWNER.github.io/$REPO_NAME/"
gh api --method PATCH repos/$OWNER/$REPO_NAME --field homepage="$PAGES_URL" --jq '.homepage'
echo "✓ Site live at: $PAGES_URL"
更新站点
修改内容后执行:
git add .
git commit -m "Update site"
git push
GitHub Pages 将自动重建。
适用场景
- 需要快速发布静态 HTML/CSS/JS 前端项目
- 希望将项目分享为可公开访问的网址
- 使用 GitHub 免费 Pages 托管个人或演示站点
限制与排查
- Pages 未启用:确保仓库为公共仓库,或拥有 GitHub Pro
- 404 错误:等待 1-2 分钟部署完成,检查根目录是否存在 index.html
- 构建失败:检查 GitHub Actions 标签页中的错误信息
关于该技能的收费、价格、平台支持范围等更多信息,资料中暂未提供。