文本差异
文本差异 会高亮显示把一个文本文件转换成另一个文本文件所需的更改。
布局
共有三种布局:
- 统一视图 会把更改显示在一个合并后的视图中。
- 双面板布局 会并排显示左侧和右侧。
- 带连接线的双面板布局 会在相关更改之间添加连接线。
切换时请使用 视图 菜单,或右上角的分段控件。
布局颜色
- 行会使用绿色、红色和蓝色来表示插入、删除和修改。行内发生变化的单词会被更强地高亮。
- hunk 是一个连续的彩色块,表示同一操作跨越了多行。
- 选中的行 会用灰色矩形标出。你可以用键盘方向键移动选区,也可以用 Shift + 方向键扩展选区。
编辑
这些操作可以从菜单栏、右键菜单或键盘快捷键使用。
- 要 复制一个 hunk,先把选区移动到该 hunk,然后按 ⌘⇧ + 右/左方向键。
- 要 复制一行,按 ⌘ + 右/左方向键。
- 要 编辑一行,双击、按 Return,或选择 编辑 ▸ 编辑当前行。
- 要 扩展选区,按 ⇧⌘ + 上/下方向键。
- 要 保存更改,使用 文件 ▸ 保存 ⌘S,或 文件 ▸ 另存为补丁 ⇧⌘S。
补丁文件 包含把左侧转换为右侧所需的操作。之后可以用
patch left-file exported.patch 应用。
当选中的内容已经与目标一致,或选区不在真实的文本行上(例如对齐用的占位行)时,复制操作不可用。
视图选项
文本差异提供了一些选项,用来改变比较的计算方式或显示方式。这些选项可以通过右上角的漏斗按钮访问。
- 忽略模式 可帮助你在比较时抑制诸如 ID 或时间戳之类的噪声。
- JSON 规范化 会把输入转换成规范形式,使比较具有语义意义。保存规范化后的文件时,输入文件会被重写为该规范化格式。
与 Git 修订版本比较
要把文件与之前的修订版本比较,请选择 载入上一版。
当文件处于版本控制之下时,它们会显示一个标签,用来揭示其 Git 历史。
如果可用,文件名区域会显示类似这样的修订标签:
- Working Tree(未提交的更改)
- HEAD(当前提交)
- 短的 提交哈希(历史修订)
使用修订控制可以把文件的其他版本载入到某个面板中。这在不离开比较视图的情况下检查一段时间内的变化时很有用。访问 Git 修订版本需要显式授权。详情请参阅 设置 和 App Store 应用的磁盘访问。
键盘速查
| 操作 | 快捷键 |
|---|---|
| 上一行 / 下一行 | ↑ / ↓ |
| 跳到第一行 / 最后一行 | ⌘↑ / ⌘↓ |
| 上一个更改 / 下一个更改 | ⌥↑ / ⌥↓ |
| 切换到另一个面板 | ⇥ |
| 复制到右侧 | ⌘→ |
| 复制到左侧 | ⌘← |
| 上一个 / 下一个 hunk | ⌥↑ / ⌥↓ |
| 扩展选区 | ⇧↑ / ⇧↓ |
| 用我们的版本解决 | ⇧⌘→ |
| 用对方的版本解决 | ⇧⌘← |