ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

ChatGPT-Shortcut 同步更新指南:让 Vercel 部署的 Fork 自动跟随上游

ChatGPT-Shortcut 同步更新指南:让 Vercel 部署的 Fork 自动跟随上游 AI 应用提示工程人工智能前端【免费下载链接】ChatGPT-ShortcutStop writing prompts from scratch — a searchable prompt library for ChatGPT, Claude, Gemini and Cursor · Русский 한국어 العربية हिन्दी ไทย 别再从头写提示词现成的拿来就用好用的收进自己的库项目地址https://gitcode.com/gh_mirrors/ch/ChatGPT-Shortcut点击查看免费下载本文围绕 ChatGPT-ShortcutAI Short的“开启同步更新”文档展开解释为什么 Vercel 一键部署的实例会一直提示“存在更新”给出“删除原仓库 → Fork 项目 → 在 Vercel 导入 Fork 重新部署”的标准解法并逐行剖析仓库内 Upstream Sync 工作流的触发时机、权限配置与失败兜底逻辑。读完后你可以让自部署的实例每天自动跟随上游代码更新并知道同步失败时如何手动补救。问题背景为什么一键部署后一直提示“有更新”ChatGPT-Shortcut 的 部署文档 支持标准部署、离线部署等形态最常见的路径是通过 Vercel 一键部署按钮拉起自己的实例。但 README 中明确提示了一个坑Vercels one-click deploy creates a new project (not a fork), so the upstream-update check wont work.Vercel 的一键部署会新建一个项目而非 fork所以上游更新检查不会生效。原因很直接Vercel 的一键部署本质上是通过“克隆”方式在你账号下新建了一个独立的仓库项目它与上游仓库rockbenben/ChatGPT-Shortcut之间不存在 Git fork 关系。没有 fork 关系就没有“上游/下游”这条链路站点自然检测不到上游是否有新提交于是页面上的“存在更新”提示会一直挂着。解决思路是把部署源从“新建项目”换成“真正的 fork”再让 fork 自动跟随上游。标准解法Fork 后在 Vercel 重新导入按 开启同步更新对应中文原文 docs/deploy/sync-updates.md给出的三步操作删除原仓库把 Vercel 一键部署生成的那个“非 fork”仓库删掉Fork 本项目使用项目页面右上角的Fork按钮 fork ChatGPT-Shortcut这样新仓库才带有所需的.github/workflows/同步配置并与上游建立 fork 关系在 Vercel 重新导入并部署进入 Vercel 的新项目页面在 Import Git Repository 处选择刚 fork 的仓库而不是原项目完成部署。完成这三步后你的部署源就是一个标准 fork后面的自动同步才有生效的前提。仓库源码剖析Upstream Sync 工作流fork 关系建立后自动同步由仓库内的工作流.github/workflows/rsync.yml实现。这个文件就是文档中“在 Actions 页面启用 Workflows”所指的目标工作流完整内容如下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: - name: Checkout target repo uses: actions/checkoutv6 - name: Sync upstream changes id: sync uses: aormsby/Fork-Sync-With-Upstream-actionv3.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 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从源码结构看这个工作流的设计要点有四处正好对应文档中的操作说明1. 每天一次的定时触发 手动触发schedule.cron: 0 0 * * *表示每天UTC 0 点自动执行一次——这就是文档所说“启用后项目每天自动同步”的实现workflow_dispatch则允许你在 Actions 页面手动点击运行对应文档中“手动跑一次 Upstream Sync Action”的要求。2. 只写内容且仅在 fork 仓库中生效permissions: contents: write授予工作流写内容的最小权限这是把上游提交合并进你分支所必需的任务的if: ${{ github.event.repository.fork }}条件保证该工作流只在你 fork 出来的仓库里执行。这一点印证了前文“必须先 fork 再部署”的必要性——如果部署源不是 fork这个条件为假同步任务根本不会运行。3. 上游来源硬编码为main分支upstream_sync_repo: rockbenben/ChatGPT-Shortcut、upstream_sync_branch: main、target_sync_branch: main三个参数表明同步方向固定为“上游main→ 你的 fork 的main”使用的是社区通用的 Fork-Sync Actionaormsby/Fork-Sync-With-Upstream-actionv3.4令牌直接取 GitHub 自动生成的secrets.GITHUB_TOKEN无需自行配置任何 Secret。4. 权限失败时的双语错误兜底最后一个Sync check步骤带if: failure()只在同步失败时输出由于权限不足导致同步失败这是预期的行为请前往仓库首页手动执行[Sync fork]。这解释了文档中那句醒目提示——“如果遇到 Upstream Sync 执行错误请手动执行一次 Sync Fork”。fork 刚建立时GitHub 出于安全考虑会默认禁用fork 仓库里的工作流Workflow dispatch 被置灰此时定时任务拿不到足够权限而失败工作流便输出上述提示指引你到仓库首页手动执行一次Sync fork。执行一次后权限链路打通后续每日自动同步即可正常进行。启用步骤Fork 后开启自动同步结合上面的工作流实现完整启用流程是Fork 项目并在 Vercel 导入该 fork 完成部署进入 fork 仓库的Actions页面启用 Workflowsfork 默认处于禁用状态手动运行一次Upstream Sync工作流若该次运行失败并出现“权限不足请手动执行 Sync fork”的红字提示前往仓库首页点击Sync fork按钮执行一次手动同步之后每日定时同步即可生效。手动更新立即拿到上游最新代码如果不愿意等当天的定时任务也可以随时手动同步。GitHub 官方对同步 fork 的说明见其文档Syncing a fork核心思路都是先把上游main拉进来再合并到你自己的main例如git remote add upstream https://github.com/rockbenben/ChatGPT-Shortcut.git git fetch upstream git checkout main git merge upstream/main git push origin main对于 fork 仓库直接点仓库首页的Sync fork → Update branch是最省事的方式效果与上面等价。同步后的部署链路为什么推送到 main 就自动上线自动同步把上游main合并进你的 forkmain后部署如何跟进这由另一份工作流.github/workflows/main.yml保证它监听push到main分支的事件执行actions/checkoutv6fetch-depth: 0以拿到完整历史、Node 24 yarn install --frozen-lockfile安装依赖、yarn build构建站点。从源码结构看每次 Upstream Sync 合并产生新的main提交后都会触发这条构建/部署链路——“每天同步 推送即构建”两段拼起来才构成文档承诺的“项目每天自动同步”闭环。构建侧的一个细节值得注意docusaurus.config.js 中站点通过git log取最后提交时间作为文档“最近更新”时间Dockerfile 则在 Docker 场景下设置SKIP_GIT_INFOtrue跳过 git 依赖。也就是说文档页面上的时间戳、sitemap 的 lastmod 都来自 git 历史——fork 通过同步持续获得新的上游提交时间这些信息会随每日同步自然刷新。小结Vercel 一键部署创建的是独立项目而非 fork导致上游更新检测失效正确姿势是删除原仓库 → Fork → Vercel 导入 fork 重新部署fork 仓库内的 Upstream Sync 工作流 每天定时把上游main合并到你的main失败时会明确提示手动执行Sync fork同步产生的main推送再由 main.yml 的构建流程接管完成每日自动更新急用时可用 GitHub 的 Sync fork 能力立即拉取上游代码。如果你希望第一时间获得功能更新通知也可以给本项目 star / watch以便在有新功能时及时收到提醒。赞分享AI 应用提示工程人工智能前端【免费下载链接】ChatGPT-ShortcutStop writing prompts from scratch — a searchable prompt library for ChatGPT, Claude, Gemini and Cursor · Русский 한국어 العربية हिन्दी ไทย 别再从头写提示词现成的拿来就用好用的收进自己的库项目地址https://gitcode.com/gh_mirrors/ch/ChatGPT-Shortcut点击查看免费下载相关推荐TiXL 资产库自动同步指南让 Assets 窗口实时跟随外部文件变更TiXL 资产库自动同步指南让 Assets 窗口实时跟随外部文件变更 TiXLt3作为一款实时动态图形创作工具素材文件的增删改是工作流中的高频操作。本音视频图形学桌面应用QM 源码 Fork 与包部署的更新同步实战merge 上游、解决冲突并安全合入 PRQM 源码 Fork 与包部署的更新同步实战merge 上游、解决冲突并安全合入 PR 本指南以仓库内 Claude Code/Codex 技能 update后端人工智能AI Agent前端AI 技能first-contributions 仓库同步指南用 Triangle Workflow 让 Fork 与上游仓库保持最新first contributions 仓库同步指南用 Triangle Workflow 让 Fork 与上游仓库保持最新 本篇技术指南以 first co文档教程开源治理上一篇3步搞定Linux系统最新Chromium浏览器自动化安装快速部署指南下一篇AI虚拟人一键部署终极指南从零开始构建实时交互数字人创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表