文本合并

文本合并 会把文件两个版本中的更改合并为一个可编辑的结果。冲突 会在两个更改互不兼容、必须做出决定时出现。

布局

这个界面会显示同一个文件的三个版本。

带插入空隙的文本合并

文本合并有两种布局:

切换时请使用 视图 菜单,或右上角的分段控件。

基础版本

还有第四个版本:基础版本。它是双方开始修改之前的原始版本。这与 Git 的三方合并模型一致:

Local → Base ← Remote
          ↓
        Result

在 ABDiff 中,中间面板可以在结果和基础版本之间切换,帮助你更清楚地理解发生了什么变化。

什么是冲突?

冲突发生在双方以不同方式修改了同样的行时。比如原来的值是 “blue”,现在一边改成了 “green”,另一边改成了 “red”。Git 无法判断哪个更改才是正确的,因此需要手动解决。

不兼容的更改

这种情况会在两个人同时编辑同样的行时出现。如果更改不重叠,Git 会自动合并;如果重叠,就必须手动解决冲突。

解决冲突

如果你已经配置了 Git,当 Git 发现冲突时,ABDiff 会自动启动。结果区域会保持未解决状态,而你的任务就是定义它的内容。你有三种方式:

右键点击任意一行即可查看可用操作

提示:

标记为已解决

完成后,请保存文件(文件 ▸ 保存 或 ⌘S)。这样 Git 就会知道该冲突已被解决。

如果你不想解决这个冲突,直接关闭文件而不保存即可。

编辑与导航

导航

操作 快捷键
上一行 / 下一行 ↑ / ↓
上一个 / 下一个面板 ← / →
跳到第一行 / 最后一行 ⌘↑ / ⌘↓
上一个 / 下一个更改 ⌥↑ / ⌥↓
上一个 / 下一个 hunk ⌥↑ / ⌥↓
切换到另一个面板

复制

操作 快捷键
将所选内容复制到结果 ⌘← ⌘→
扩展选区 ⇧↑ / ⇧↓
用我们的版本 / 对方的版本解决 ⇧⌘→ / ⇧⌘←

选中的行 会用灰色矩形显示。hunk 是连续的冲突或更改块。复制操作只有在会修改结果面板、并且选区位于真实文本行上时才会启用。按住 Shift 点击一行,也会在同一面板内扩展当前选区。

复制更改时:

所有复制操作都可以用 ⌘Z 撤销。

编辑

操作 快捷键
开始编辑所选结果行 Return
直接开始编辑某一结果行 双击该行
确认并跳到下一条可编辑行 Return(编辑时)
确认并退出编辑模式 Command-Return
丢弃当前行缓冲并退出编辑模式 Esc 或 Command-.

你也可以通过双击一行来开始编辑。所有编辑操作都可以用 ⌘Z 撤销。

视图选项

文本合并提供了一些选项,用于改变比较的计算方式或显示方式。这些选项可以在选项菜单中找到。

相关主题