difftool 做什么
difftool 把差异交给外部图形化比较工具逐文件浏览,适合大改动或需要并排视图的场景。配置好默认工具后直接执行,它会为每个有差异的文件调起工具,确认一个再进下一个;也可以用目录比较模式,一次把整体差异摆在一屏上。
基本信息
| 配置 | git config diff.tool <工具名> |
|---|---|
| 用法 | git difftool [--staged] [-d] |
| 常见工具 | meld、kdiff3、Beyond Compare 等 |
| 查看可用 | git difftool --tool-help |
| 适用场景 | 大改动、需要并排视图时 |
典型使用场景
- 大型重构时逐个文件并排比对改动
- 评审他人改动之前先在本地看清整体差异
- 提交前对比暂存区与工作区的差异
- 用目录比较模式一次性浏览整批改动的结构
- 解决冲突后核对最终结果是否两边都照顾到
常用示例
常用示例
git config --global diff.tool meld # 指定默认比较工具
git difftool --tool-help # 查看本机可用的工具列表
git difftool # 逐个文件比较工作区改动
git difftool --staged # 比较已暂存的内容
git difftool -d # 目录比较模式,一次看全部差异常用调用
| 命令 | 比较对象 | 适用情况 |
|---|---|---|
| git difftool | 工作区与索引 | 查看未暂存的改动 |
| git difftool --staged | 索引与上次提交 | 提交前复核内容 |
| git difftool -d | 两个目录快照 | 大范围改动的总览 |
逐个文件回车确认的节奏可控,适合逐段消化大型重构;想一次看全貌时改用目录比较模式。
图形工具不在系统路径里,或者调用参数与工具版本不匹配时,需要单独配置该工具的调用命令,Windows 上尤其常见。
放进日常工作流
- 提交前用暂存区比较复核将要提交的内容
- 评审时先在本地看完整差异,再逐条回应意见
- 解决冲突后用并排视图核对,确认两侧改动都保留
- 把常用工具与参数写进个人配置,换机器后直接可用
图形工具适合人眼看,脚本与流水线仍然依赖文本差异输出;两者各管一段,按场景选用即可。