Hugo × Cloudflare Pages

2026-10-19 · Cloudflare / 架构

直传和 Git 集成,到底该选哪个

Cloudflare Pages 创建项目时会让你选一条路:连 Git 仓库,或者只做 Direct Upload。这个选择不可逆,后期改不了。

直传的真实边界

直传不是"更差的方案",它是另一种取舍。它换来的东西:

  • 构建发生在你能看见的地方,hugo 报什么错你立刻知道
  • 不需要把仓库权限交给第三方
  • 可以用本地工具链的任何版本,不受构建镜像限制
  • 定时任务、脚本、甚至别的程序都能触发部署

代价也很明确:

  • 没有 Git 历史绑定,谁在什么时候发了什么版本,得自己记
  • 多人同时推,后推的覆盖先推的,没有合并概念
  • 想在手机上改个错字,得先有本地环境

什么时候该换边

判断标准其实只有一条:部署这件事,是一个人的动作,还是团队的动作。

一个人写博客,部署就是"我想看看效果",直传最顺手。团队维护文档站,部署是"这次变更要留痕",Git 集成的审计价值大于便利性。

不要为了自动而自动。如果一个站一周只改两次,为它配 CI 的维护成本比手动部署还高。

混合方案

真要两头都要,可以用 GitHub Actions 跑 wrangler pages deploy —— 仓库里留痕,构建日志在 CI 里,产物仍然走直传通道。代价是又回到"等 CI"的延迟上,而且要在仓库里配一个 API Token。

我的选择是:先直传,等真的因为协作出问题了再换。 现在这套 deploy.py 只有一百来行,换成 Actions 也就是把同样的三条命令抄进 workflow 文件。