使用 GitHub Actions 将 Hugo 博客部署到 Cloudflare Pages

我之前使用 Cloudflare Pages 部署 Hugo 博客时,最开始考虑的是直接使用 Cloudflare Pages 的 Git 集成:把 GitHub 仓库连接到 Cloudflare,之后每次推送代码就自动构建。 这种方式很简单,但构建过程完全由 Cloudflare 控制。如果希望自己控制 Hugo 版本、主题子模块初始化、构建命令和部署时机,也可以把整个过程放到 GitHub Actions 中完成。 本文记录我现在采用的方案: push 到 master │ ▼ GitHub Actions │ ├── 拉取源码和 PaperMod 子模块 ├── 安装 Hugo Extended ├── 构建 public/ └── 使用 Wrangler 部署到 Cloudflare Pages 这套方案适合什么情况? 如果只是想实现“推送代码后自动发布”,Cloudflare Pages 自带的 Git 集成已经够用。 GitHub Actions 更适合下面这些情况: 希望固定 Hugo 版本,保证本地和 CI 构建结果一致; 需要在部署前加入测试、格式检查或链接检查; 希望自己控制哪些分支可以部署; 已经把 CI/CD 统一放在 GitHub Actions 中; 希望构建过程和 Cloudflare 解耦。 需要注意的是,不要同时开启 Cloudflare Pages 的 Git 自动部署和 GitHub Actions 部署。否则一次 push 可能触发两次构建和两次发布。 ...

2026-08-08 · 3 min · 588 words

Git Worktree:多分支并行开发的利器

Git Worktree:多分支并行开发的利器 Git 的分支功能很强大,但实际开发中经常遇到一个问题:需要在同一时间处理多个任务,比如主分支有紧急 Bug 要修,同时又想在一个新分支上做重构。这时传统的 git checkout 会让你陷入 stash、切换、再 pop 的循环,环境重建也很麻烦。 [ Git 2.6 引入了 git worktree 命令,它允许一个 Git 仓库对应多个工作目录,每个目录可以检出不同的分支,实现真正的并行开发。 什么是 Worktree? 简单说,Worktree 就是一个仓库的多个「分店」。它们共享同一个 .git 目录(包含所有分支历史、提交记录),但拥有独立的文件系统和工作环境。 仓库.git(共享) ├── 主工作树(main 分支) ├── ../feature/(feature 分支) └── ../bugfix/(bugfix 分支) 这样,你可以在不同目录同时编辑不同分支,互不干扰。 核心区别 特性 普通分支 Worktree 工作目录 单一目录,切换分支需 checkout 多个独立目录同时存在 环境隔离 切换分支需重建 node_modules 等 各树独立环境 并行开发 需要 stash 保存变更 无需 stash,直接并行 存储开销 只占指针空间 共享 .git,只复制工作文件 这些差异让 worktree 特别适合一台机器上并行开发多个功能。 基本使用 1. 创建 Worktree 在主仓库执行: # 基于现有分支创建 git worktree add ../feature-branch feature-branch # 创建新分支并检出 git worktree add ../new-feature -b new-feature 创建后,你得到一个新目录 ../feature-branch/,里面是 feature-branch 分支的完整工作树,主目录保持不变。 ...

2026-03-06 · 3 min · 481 words

如何使用 Cloudflare worker 创建 gemini api 代理

https://zhile.io/2023/12/24/gemini-pro-proxy.html 如何使用 Cloudflare worker 创建 gemini api 代理 一、在 Cloudflare 中创建一个 worker gemini-api-proxy,保存并部署 export default { async fetch(request, env) { const url = new URL(request.url); url.host = 'generativelanguage.googleapis.com'; return fetch(new Request(url, request)) } } 二、添加自定义域名 可以直接使用 worker 触发器中的添加自定义域添加自定义域名。 不过这样不能确定使用的是哪个 ip,可能会存在请求时 gemini 提示地区不支持,这里可以自己设置 dns 解析 ip,通过这种方式来避免不支持的问题 以下内存转自 https://zhile.io/2023/12/24/gemini-pro-proxy.html 转到自己在 cf 上域名的控制面板,点击左侧菜单 DNS 来添加域名解析。 这里我使用自己的域名 gusibi.site,给它增加了子域名 A 记录:gemini-api.gusibi.site 这里有两个要点: 不要开启小黄云。 ip地址可以使用cf的优选工具选出来的高质量ip。 我这里用了两个我觉得还不错的ip,你们可以直接用,也可以自己去优选。 DNS解析记录操作完毕之后,点击左侧菜单Workers路由来让我们设置的域名和worker的路由关系。 在Workers路由界面,点击添加路由按钮,参考如下填写: 这里域名换成你刚才设置的那个,Worker也选择你之前创建的。点击保存即可。 完成这一步你就可以用你自己的域名来请求gemini了。 相关链接 : # 我们也要用Gemini Pro

2024-02-15 · 1 min · 69 words