冲突解决
合并、变基、拣选、还原或应用贮藏遇到冲突时,工作台顶部会出现横幅,显示冲突数量。在“变更”视图的 Conflicts 分组中选中文件,即可进入三栏冲突解决工作台。
三栏布局
| 栏 | 内容 |
|---|---|
| Ours | 当前分支(HEAD)一侧的版本 |
| Result | 将要写回工作区的结果,可直接编辑 |
| Theirs | 被合并进来的一侧的版本 |
Result 的初始内容是“已干净合并的部分 + 冲突处填入 Base”,冲突区域会被持续跟踪,编辑时位置随内容移动。Fox Git 读取 index 中的三个 stage,在临时文件上执行 git merge-file -p --diff3 来拆分冲突块,过程中不改动你的工作区。
联动滚动与连接带
三栏以 Result 为中心做分段映射,滚动任意一栏,另外两栏会对齐到对应位置,并抑制微小的滚动抖动。两侧与 Result 之间的连接带标出彼此对应的变更块,只绘制可见范围。如果你想独立滚动,可以关闭联动。
逐块处理
- 在冲突之间前后导航;
- 每个冲突可选择采用 Ours、采用 Theirs、两边都要或保留 Base;
- 工具栏显示已处理的进度;
- 任何时候都可以在 Result 中手动修改。
标记为已解决
点击“标记为已解决”时,Fox Git 会先确认文件中没有残留的冲突标记(只识别 <<<<<<< 与 >>>>>>>,避免误伤 Markdown 中的 =======),然后写回文件并执行 git add。还有未选择的冲突时,会再确认一次。
特殊冲突
二进制文件冲突、修改 / 删除冲突无法逐块合并,改为整文件选择:采用 Ours、采用 Theirs,或在修改与删除冲突时删除文件。
继续或中止
所有冲突文件解决后,点击横幅中的“继续”完成合并、变基或拣选(不会弹出编辑器)。冲突未解决时“继续”不可用;“中止”会放弃本次操作,需要确认。