- AI 应用
- 提示工程
- 人工智能
- 前端
【免费下载链接】ChatGPT-Shortcut
Stop writing prompts from scratch — a searchable prompt library for ChatGPT, Claude, Gemini and Cursor · Русский 한국어 العربية हिन्दी ไทย | 别再从头写提示词:现成的拿来就用,好用的收进自己的库
ChatGPT-Shortcut(AI Short)是一套可搜索的提示词库站点,支持本地构建、Vercel、Cloudflare Pages 与 Docker 等多种部署方式。本文以仓库文档 i18n/vi/docusaurus-plugin-content-docs/current/deploy/sync-updates.md(内容与 docs/deploy/sync-updates.md 一致)为核心,解决一个真实痛点:为什么 Vercel 一键部署的站点会一直提示"有更新",以及如何通过 Fork + GitHub Actions 实现每天自动跟随上游更新。读完本文,你将掌握从"新建项目部署"切换到"Fork 部署"的完整三步流程、自动同步工作流的源码级原理、以及手动同步与故障排查的实操方法。
问题根源:Vercel 一键部署为什么永远提示"有更新"
很多用户通过 Vercel 的一键部署(Deploy to Vercel)把 ChatGPT-Shortcut 部署成自己的站点,随后发现界面长期提示"存在更新",但无论怎么刷新都无法消除。原因是:
- Vercel 的一键部署默认是新建项目(import project),而不是fork本仓库;
- 新建项目与原仓库之间不存在 fork 关系,GitHub 无法为它计算与上游(upstream)的提交差异,自然也就检测不到上游更新。
这一点可以从本仓库的自动化配置得到佐证。仓库中的 .github/workflows/rsync.yml 是整个"Upstream Sync"自动同步工作流,它的同步任务带有一个关键条件:
jobs: sync_latest_from_upstream: runs-on: ubuntu-latest if: ${{ github.event.repository.fork }}也就是说,只有 fork 仓库才会执行自动同步。Vercel 新建的项目不是 fork,github.event.repository.fork恒为false,自动同步永远无法启动。这就是"一直提示更新"的技术根源。
因此,修复思路非常明确:放弃"新建项目"模式,改为 fork 之后从 fork 仓库部署。
修复三步:从"新建项目"切换为"Fork 部署"
按照文档给出的方案,只需三步即可根治:
- 删除原仓库:删除此前由 Vercel 一键部署创建的仓库,避免后续误用;
- Fork 本项目:点击本仓库页面右上角的Fork按钮,将 ChatGPT-Shortcut fork 到自己的账号下;
- 重新部署:在 Vercel 的新项目页面,通过Import Git Repository重新选择刚才 fork 的仓库并完成部署。
完成这一步之后,你的站点源码就来自一个真正的 fork 仓库。值得注意的是,这一步也正是 docs/deploy/standard.md 所描述的标准部署流程的起点——该文档要求"先 fork 本项目,再选一种方式部署",且支持本地构建、Vercel、Cloudflare Pages 与 Docker 四种方式,并要求 Node.js 20.0 或更高版本(与 package.json 中engines.node: ">=20.0"一致)。
开启自动更新:GitHub Actions 每日同步
Fork 部署完成后,站点源码仍然不会自动跟随上游——还需要开启自动同步。操作分两步:
- 手动启用 Workflows:fork 仓库后,GitHub 默认不会自动运行仓库内的 Actions 工作流,需要进入 fork 仓库的Actions页面手动启用(Enable workflows);
- 手动运行一次 Upstream Sync action:在 Actions 页面找到 Upstream Sync 工作流并手动触发一次,验证同步链路可用。
启用之后,项目会每天自动同步一次上游更新,无需任何人工干预。
文档还特别强调了一条注意事项:
如果遇到 Upstream Sync 执行错误,请手动执行一次 Sync Fork!
这条注意事项并非空穴来风,它直接对应工作流源码中同步失败时的处理逻辑(详见下文)。
Upstream Sync 工作流源码解析
自动同步的核心实现位于 .github/workflows/rsync.yml,其完整逻辑如下:
name: Upstream Sync permissions: contents: write on: schedule: - cron: "0 0 * * *" # every day workflow_dispatch: jobs: sync_latest_from_upstream: name: Sync latest commits from upstream repo runs-on: ubuntu-latest if: ${{ github.event.repository.fork }} steps: # Step 1: run a standard checkout action - name: Checkout target repo uses: actions/checkout@v6 # Step 2: run the sync action - name: Sync upstream changes id: sync uses: aormsby/Fork-Sync-With-Upstream-action@v3.4 with: upstream_sync_repo: rockbenben/ChatGPT-Shortcut upstream_sync_branch: main target_sync_branch: main target_repo_token: ${{ secrets.GITHUB_TOKEN }} # automatically generated, no need to set # Set test_mode true to run tests instead of the true action!! test_mode: false - name: Sync check if: failure() run: | echo "::error::由于权限不足,导致同步失败(这是预期的行为),请前往仓库首页手动执行[Sync fork]。" echo "::error::Due to insufficient permissions, synchronization failed (as expected). Please go to the repository homepage and manually perform [Sync fork]." exit 1逐项解读这份工作流,可以回答文档中没有展开的所有细节:
- 触发时机:
schedule中的cron: "0 0 * * *"表示每天 UTC 零点定时执行;同时声明了workflow_dispatch,允许你在 Actions 页面手动触发——这正对应文档要求的"手动跑一次 Upstream Sync Action"。 - 执行条件:
if: ${{ github.event.repository.fork }}保证只有 fork 仓库才会同步,这也是前文所述"一键部署新建项目无法自动同步"的源码依据。 - 同步动作:使用第三方 action
aormsby/Fork-Sync-With-Upstream-action@v3.4,配置的上游是rockbenben/ChatGPT-Shortcut的main分支,目标是你 fork 仓库的main分支。 - 令牌:
target_repo_token: ${{ secrets.GITHUB_TOKEN }}是 Actions 自动生成、无需手动配置的令牌,它负责把上游提交写入你的 fork。 - test_mode:
test_mode: false表示执行真实的同步操作,而非仅做测试。 - 失败兜底:最后一步
Sync check在同步失败时输出明确的中英文错误提示——"由于权限不足,导致同步失败(这是预期的行为),请前往仓库首页手动执行 [Sync fork]"——并exit 1让任务标记为失败。这正是文档中"遇到 Upstream Sync 执行错误,请手动执行一次 Sync Fork"的出处。
遇到 Upstream Sync 报错怎么办:手动 Sync Fork
从工作流源码可以推断,Upstream Sync 报错通常发生在以下场景:
- 你的 fork 上存在上游没有的提交(例如你做过自定义修改),与上游历史产生分叉;
- 上游历史被改写(rebase / force push),导致自动同步无法干净地合并。
在这些情况下,自动生成的GITHUB_TOKEN权限不足以完成强制同步,失败是预期行为而非工作流损坏。此时需要人工介入:
- 打开你的 fork 仓库首页;
- 点击页面上的Sync fork按钮(GitHub 的 Fetch upstream → Fetch and merge 功能)手动同步一次;
- 同步成功后,后续每日定时任务会恢复自动执行。
如果你习惯命令行操作,也可以在本地方便地完成等效同步(标准 Git fork 操作):
git remote add upstream <上游仓库地址> # 首次需添加 upstream 远程 git fetch upstream git checkout main git merge upstream/main git push origin main手动更新:想立刻拿到最新功能
自动同步是每天一次,如果你不想等,可以随时手动更新:
- 界面方式:在 fork 仓库首页点击Sync fork(Fetch upstream → Fetch and merge),立即把上游最新代码拉进你的 main 分支;
- 通知方式:为 ChatGPT-Shortcut 项目star / watch,及时获得新功能更新通知,第一时间了解上游发布了什么。
手动同步与自动同步最终写入的都是 fork 的main分支,两者是等价的,可以按需混用。
同步之后:上游更新如何抵达你的站点
自动同步把上游的新提交推到 fork 的main分支后,更新并不会自动"出现"在站点上,还需要你的部署链路响应这次 push:
- Vercel / Cloudflare Pages 等平台部署:如果你的部署绑定的是 fork 仓库,push 到
main会触发平台自动重新构建与部署。以 Cloudflare Pages 为例,docs/deploy/standard.md 明确说明"之后每次推新代码会自动触发构建和部署"。 - 本仓库自带的 CI:.github/workflows/main.yml 会在 push 到
main时自动执行:先用fetch-depth: 0拉取完整 git 历史(保证showLastUpdateTime等依赖历史记录的功能稳定),再安装 Node.js 24 与 yarn 缓存,执行yarn install --frozen-lockfile和yarn build(实际构建入口是 package.json 中的node scripts/buildPhased.mjs)。仓库内的 GitHub Pages / FTP 部署步骤以注释形式保留,需要时可自行开启。
也就是说,只要你的 fork 同步正常、部署绑定正确,上游每次更新都会在当天自动完成"同步 → 触发构建 → 重新部署"的闭环。
排查速查表
| 症状 | 原因 | 解决方案 |
|---|---|---|
| 站点一直提示"有更新" | Vercel 一键部署是新建项目而非 fork,无法感知上游 | 删除原仓库,fork 后重新导入部署 |
| Actions 页面没有 Upstream Sync 或任务不运行 | fork 后工作流默认未启用 | 进入 Actions 页面手动 Enable Workflows,并手动跑一次 |
| Upstream Sync 执行报错 | fork 与上游分叉、权限受限(预期行为) | 在 fork 首页手动执行一次 Sync fork |
| 同步成功后站点没有变化 | 部署平台未绑定 fork 仓库或未自动构建 | 确认部署来源是 fork 的main分支,检查平台构建配置 |
| 不想等每天一次的定时同步 | — | 手动 Sync fork,或 star / watch 项目获取发布通知 |
小结
ChatGPT-Shortcut 的同步更新机制本质上是一条清晰的链路:Fork(建立 fork 关系)→ 启用 Upstream Sync 工作流(.github/workflows/rsync.yml,每天 UTC 零点定时同步)→ 触发部署平台重新构建。理解这条链路,你就同时掌握了"为什么一键部署一直提示更新"的根源、从新建项目迁移到 fork 部署的完整步骤,以及自动同步失败时的正确处置方式。更多部署细节可继续阅读 docs/deploy/standard.md、docs/deploy/configuration.md 与 docs/deploy/offline.md。
- AI 应用
- 提示工程
- 人工智能
- 前端
【免费下载链接】ChatGPT-Shortcut
Stop writing prompts from scratch — a searchable prompt library for ChatGPT, Claude, Gemini and Cursor · Русский 한국어 العربية हिन्दी ไทย | 别再从头写提示词:现成的拿来就用,好用的收进自己的库
相关推荐
AI Short 同步更新指南:让 ChatGPT-Shortcut 的 Fork 自动跟随上游并每日自动同步
AI Short 同步更新指南:让 ChatGPT Shortcut 的 Fork 自动跟随上游并每日自动同步 本文讲解如何让 AI Short(ChatGPT
AI 应用提示工程人工智能前端ChatGPT-Shortcut(AI Short)Fork 同步更新实战指南:让自部署站点自动跟随上游
ChatGPT Shortcut(AI Short)Fork 同步更新实战指南:让自部署站点自动跟随上游 AI Short(ChatGPT Shortcut)是
AI 应用提示工程人工智能前端ChatGPT-Shortcut 同步更新指南:让 Vercel 部署的 Fork 自动跟随上游
ChatGPT Shortcut 同步更新指南:让 Vercel 部署的 Fork 自动跟随上游 本文围绕 ChatGPT Shortcut(AI Short)
AI 应用提示工程人工智能前端
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考