分支管理
分支管理让你把每个存档的对话历史视为一棵「版本树」——每一回合是一个节点,每次从历史节点重走都会在树上开出新的分叉轨道,原路线完整保留。可以从任意历史节点新建分支、切换到某条旧路线继续,或删除不想要的子树。
入口:顶栏「存档与分支」→「分支管理」;或游戏内右侧面板顶栏点「分支」按钮打开紧凑版分支图,右上角小箭头可在新标签打开完整分支图。
关键概念
分支图(VSCode Git Graph 风格)
- 左侧彩色竖线:每条分支轨道(swimlane),不同颜色区分不同分支路线
- 每行一个节点(commit),最新节点在最上方
- 当前激活节点(HEAD)的圆点带外圈高亮
- 已删除节点以虚线标注,仍可在图中溯源查看
- 节点右侧显示:分支名称标签(ref pill)、回合摘要、时间
两种视图
- 完整分支图(平台「分支管理」页):显示该存档的所有分支路线,可对任意节点操作
- 紧凑分支图(游戏内右侧「分支」面板):仅显示当前激活节点沿父节点追溯的这条链,即当前正在走的路
删除后的去向
从消息气泡删除(「删除此消息及之后所有」),旧分支会被自动保存到 refs/trash/...,仍可通过分支管理树切回去恢复。
常见任务
从某条消息开新分支
适用于想在某个关键决策点「走另一条路」的情况。
- 在游戏对话流中,把鼠标悬停到目标消息,底部出现操作栏。
- 点击「分叉」图标(data-tip:从这里新建分支)。
- 弹出确认框,显示消息预览,点「新建分支」确认。
- 系统把这条消息及其节点之后的历史保留在原分支,并切换到新分支。如果点的是玩家消息,该条消息会自动放回输入框,方便改写后重发。
重新生成这一轮(换个写法)
- 悬停到某条 GM 回复,点击「刷新」图标(data-tip:重新生成这一轮)。
- 系统会在这条回复之前新建分支,重新走一次相同的玩家输入,生成不同的 GM 回复。
切换到某个历史节点(改变当前进度)
在完整分支图(平台「分支管理」页):
- 找到目标节点行,点击行右侧的「切到此分支」按钮(勾形图标)。
- 系统将当前存档激活节点切到该处,再进入游戏时从这里继续。
在游戏内紧凑分支图:
- 点「分支」按钮打开右侧面板。
- 找到目标节点,点击「切到此分支」(勾形)或「从此继续」(播放形)按钮。
从历史节点继续游戏(不切换,直接开新分支)
在完整分支图:
- 找到目标节点,点击该行的「从此继续」按钮(播放图标)。
- 系统从该节点创建新分支并切换为当前进度,进入游戏后从这里走。
删除某条消息及之后所有内容
- 悬停到目标消息,点「删除」图标(data-tip:删除此消息及之后所有)。
- 弹出危险操作确认框,说明将丢弃哪些回合。
- 点「确认删除」。旧内容会保留在
refs/trash/...,可通过分支管理树切回恢复。
在完整分支图中删除分支子树
- 在「分支管理」页找到要删除的节点行,点「删除子树」图标(垃圾桶)。
- 弹出确认框,确认后该节点及其所有子孙节点被删除。
- 此操作在本存档内不可用原有方式恢复(非 trash-ref 路径)。
刷新分支图
右上角「刷新」按钮,重新从服务器拉取最新状态。
常见问题
分支图是空的? 当前存档还没有任何游戏记录。进入游戏发出第一条指令后,节点才会生成。
新建分支后,原来的路线还在吗? 原分支完整保留,新内容出现在新的轨道上,两条线都显示在完整分支图中。
游戏内右侧「分支」面板只看到一条线,其他分支呢? 游戏内面板是「当前子分支」视图,只显示当前激活节点沿父节点追溯的一条链。完整的 DAG 请点面板右上角小箭头,在新标签打开「分支管理」页查看。
删除消息后想反悔?
从消息气泡删除的旧分支会保存到 refs/trash/...,在分支管理页的完整图里仍可找到这些节点,点「切到此分支」即可切回。
「切到此分支」和「从此继续」有什么区别? 「切到此分支」只移动激活指针,不创建新分支;历史节点成为新的当前进度,继续游戏会在该节点接续。「从此继续」从该节点新建分支,以新分支继续,原分支保留。