第 5课 更新于 2026年9月2日
同步上游:把官方更新安全搬进来
三行命令合并官方更新,冲突口诀「配置和内容保留我的,代码听官方的」;版本号三段式承诺(字段只加不改名/新功能默认关闭/locale 缺条目英文兜底)决定你要不要升。
你现在在哪,这章解决什么
模板作者持续发新版:修 bug、加功能。你的站跟不跟?怎么跟才不冲掉你自己的游戏名、颜色、文章?查询手册,升级时翻。(要不要升级的决定,看下面的版本号承诺。)
三行命令合并官方更新(每次 10 分钟)
# 第一次才要跑:把官方仓库设为「上游」
git remote add upstream https://github.com/PNGTRID/AnvilWiki.git
# 以后每次升级
git fetch upstream
git merge upstream/main
# 合并后验证
pnpm check-config && pnpm typecheck && pnpm test
pnpm build && pnpm check-links
遇到冲突(CONFLICT 字样),口诀背下来:
- 配置层、内容层的冲突 → 永远保留你自己的(游戏名、颜色、文案、文章)
- 代码层的冲突 → 优先收官方的(那是修好的东西);你改过代码层才需要动脑,没改过就无冲突
为什么这么省心:官方新功能几乎全落在代码层(你最不碰的层),冲突高发区恰好是你「本来就该保留自己」的区域。
合并完记得:跑上面的验证;pnpm check-i18n 会列出官方新增界面文字里你还没翻译的部分。
版本号承诺(决定你要不要升)
版本号三段式 主.次.补丁:
| 升什么 | 意味着 | 你的动作 |
|---|---|---|
| 补丁变(2.10.0 → 2.10.1) | 修 bug | 直接合并,放心 |
| 次版本变(2.10 → 2.11) | 新功能,默认关闭或向后兼容 | 合并后行为不变,想要的自己开 |
| 主版本变(2.x → 3.0) | 有不兼容改动 | 看官方 CHANGELOG 迁移说明再动手 |
三条长期承诺:文章登记卡字段只加不改名(旧文章永远能构建);可选功能默认关闭(升级不会偷偷开广告);语言 JSON 缺条目自动英文兜底(官方加新文字不会弄挂你的构建)。
完全不想跟行不行:行。静态站不是订阅服务,冻结在某版本永远能跑。但建议至少合并补丁级更新(安全与 bug 修复),git cherry-pick 挑着合也行。
卡住了怎么办
- 「merge 冲突看不懂」:冲突段贴给 AI,口诀「配置和内容保留我的,代码听官方的」,解决完跑验证。
- 「合并完构建挂了」:
pnpm build看报错文件——多半官方改了结构、你本地也改过同一处;按口诀处理后重试。
✅ 验收(全部成立才算完成)
- 合并官方更新后,验证命令全绿
- ☐ 所有配置/内容冲突都保留了你自己的值(逐个看过 diff)
- ☐ check-i18n 列出的新增文字,要么已翻译、要么明确接受英文兜底
下一课
模板在长,你的好东西也别烂在本地——下一课:把改进贡献回官方,和上展示墙。贡献回流