进阶
使用 Git 进行整合包开发
使用 Git 对整合包进行版本控制——跟踪变更、协作开发并发布发行版。
上次更新
为什么使用 Git?
Polymerium 实例在设计上天然适配 Git:
profile.json是整合包的定义文件——纯 JSON,方便 diff 比较import/包含可分发的文件——配置、资源、自定义内容build/、live/、persist/是运行时产物,不应纳入版本控制
这意味着你可以将实例纳入 Git 管理,获得有意义的差异比较、分支管理和协作能力。
初始设置
- 在实例目录中初始化 Git 仓库:
cd instances/my-modpack
git init- 创建
.gitignore:
build/
live/
persist/
data.lock.json- 提交初始状态:
git add profile.json import/ icon.png README.md CHANGELOG.md
git commit -m "Initial modpack"应该跟踪什么
| 文件 | 跟踪? | 原因 |
|---|---|---|
profile.json | ✅ | 整合包定义文件——版本、加载器、模组列表 |
import/ | ✅ | 可分发文件(配置、资源) |
| 图标 / README / CHANGELOG | ✅ | 整合包元数据 |
build/ | ❌ | 构建产物,可复现 |
live/ | ❌ | 工作副本,个人使用 |
persist/ | ❌ | 玩家数据(存档、截图) |
data.lock.json | ❌ | 部署缓存,自动生成 |
开发工作流
迭代配置
- 启动游戏并在游戏内修改设置。
- 修改保存在
live/中。 - 打开工作区查看差异。
- 将确认的修改同步到
import/。 - 提交:
git add import/
git commit -m "Tweak performance configs"添加/移除模组
- 在 Polymerium 的 Setup 标签页中添加或移除模组。
profile.json会自动更新。- 提交:
git add profile.json
git commit -m "Add Sodium and Lithium"切换分支
你可以使用 Git 分支来管理实验性的整合包版本:
git checkout -b experiment/new-loader
# 在 Polymerium 中更换加载器、添加/移除模组
git add profile.json import/
git commit -m "Switch to NeoForge"
# 测试...
git checkout main # 回到稳定版本协作
与合著者共享
- 将仓库推送到共享远程仓库(GitHub、GitLab 等)。
- 合著者将仓库克隆到他们的
instances/目录中。 - 每个人的
live/和persist/都是本地的且不被跟踪。 - 通过常规 Git 工作流在
profile.json和import/上协作。
发布发行版
- 打标签发布:
git tag v1.2.0
git push origin v1.2.0- 使用 Polymerium 的导出功能导出实例。
- 将导出的整合包上传到 CurseForge、Modrinth 或两者。
使用 CLI 自动化导出
你可以跳过 GUI,使用 Trident CLI 从命令行导出:
trident instance export my-modpack --format modrinth --output ./releases/这在 CI/CD 管道中非常好用。例如,当你推送标签时自动触发构建和导出:
# .github/workflows/release.yml(简化版)
on:
push:
tags: ['v*']
steps:
- uses: actions/checkout@v4
- run: trident instance export my-modpack --format modrinth --output ./releases/
- # 将 ./releases/* 上传到 Modrinth / CurseForge完整 CI/CD 示例请参阅无头服务器指南。
提示
- 在执行 Git 操作前关闭 Polymerium——Polymerium 可能正在监视
profile.json的变化。退出后执行 Git 操作,然后再重新打开。 - 不要手动编辑
profile.json来更改版本——更安全的做法是创建新实例并迁移包。 - 使用工作区作为你的暂存区——它专为
live/→import/流程而设计。