合并与冲突解决
合并将不同分支上的工作组合,是分支流程的常见环节。
合并两个分支
PlayCanvas 选择两个分支的检查点,计算相对最近共同祖先的变化,组合结果,必要时人工解决冲突,最后创建新检查点。
实际合并的是检查点,而非分支当前未记录的状态。因此最新检查点之后可能还有修改。目标分支默认自动创建检查点,避免丢失。
合并示例
Y 和 Z 不包含在结果 C 中,且会丢失。
默认在目标分支创建新检查点,因此 Y 被包含。
需要包含 Z 时,合并前先在源分支创建检查点。
开始合并

先切换到目标分支,再选择源分支,在菜单点击 Merge into current branch。

开始前可配置:
源分支 Merge from:
- Create checkpoint first:先创建检查点,将尚未记录的修改包含进来。
- Close branch after merging:完成后关闭源分支,适合已完成功能,保持列表整洁。
目标分支 Merge to:
- Create checkpoint first:默认启用,确保目标未记录修改包含在合并中。取消会丢弃未记录修改,建议保留。
自动合并
PlayCanvas 尝试自动组合不冲突的修改,很多合并无需人工处理。完成后,编辑器重新加载当前分支的合并结果。
解决冲突
双方修改同一实体位置等情况无法自动选择,需要人工决定。
存在冲突时显示冲突管理器,全部解决才能完成。
冲突管理器

左侧列出冲突资源,右侧比较原始 Base 和双方版本。为各冲突属性选择保留版本,全部处理后点击 Complete Merge,完成并创建检查点。

合并期间当前分支锁定,其他成员不能编辑,避免结果覆盖新修改。其他人的合并阻塞所需分支时,可以在编辑器中强制结束。