首页/开发/Git 与协作速查/git diff --word-diff 词级比较
Git 基础与命令88 条

git diff --word-diff 词级比较

以单词为粒度标记增删:--word-diff 输出词级标记、--color-words 用颜色呈现,适合长行或文档类修改的阅读。

Git 与协作速查开发更新于 2026-10-13

词级比较是什么

以单词为粒度标记增删,而不是整行。--word-diff 输出词级增删标记,--color-words 用颜色呈现变化部分。它适合长行代码与文档类修改的阅读:一眼就能看出句子或表达式里改了哪几个词,不必在整行删除与整行新增之间自己找差异。

基本信息

词级标记--word-diff,默认用方括号与标记符号标出增删
颜色呈现--color-words,终端里按颜色高亮变化的词
脚本格式--word-diff=porcelain,逐词输出便于二次处理
自定义切词--word-diff-regex 指定「词」的切分规则
适用范围文档、长行配置、压缩后的代码文件

典型使用场景

  • 审阅说明文档或注释里的措辞改动
  • 长行代码中只改了条件表达式的一部分
  • 配置文件单行很长,逐行比较看不出重点
  • 对比两版说明文字之间的细微差异
  • 向非技术同事展示这次到底改了什么

常用示例

常用示例
git diff --word-diff                     # 词级增删标记
git diff --color-words                   # 颜色高亮,阅读更直观
git diff --word-diff=porcelain | head    # 面向脚本的格式
git diff --word-diff-regex='[^ ]+'       # 按自定义规则切词
git show HEAD --word-diff -- README.md   # 查看某次提交对文档的词级改动

输出逐项读法

标记含义
方括号加减号标记被删除的词
花括号加加号标记新增的词
无标记部分未发生变化的上下文
porcelain 格式每行带前缀标记变化类型,便于解析
整段被重排(例如跑过格式化之后)的改动,词级视图比整行刷屏更容易看清实质变化,评审时能显著减少噪音。
词级输出不是标准补丁格式,不能用来打补丁;需要生成可应用的补丁时仍要使用普通差异输出。
同一条命令可以叠加忽略空白等选项,先过滤掉格式噪音再看词级改动,评审文档时能更快抓住真正变化的内容。

易错点

  • 把词级输出当成可应用的补丁,尝试用它打补丁会失败,两者格式并不通用
  • 对整体缩进调整的代码块,词级视图可能不如行级直观,应按阅读场景选择
  • 自定义切词规则写错会显示成整段删除再新增,反而更难读,先用默认规则对照结果
  • 只看词级颜色高亮就下结论,忽略同一提交里的其他文件改动,评审仍要通读完整差异

数据来源与参考

  • Git 官方文档:git-diff(--word-diff)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌