如何配置git add --patch以git diff --word-diff方式展示差异?
让git add --patch默认使用单词级diff的方法
嘿,这个需求我太懂了!git add --patch的交互式暂存确实好用,但默认的行级diff有时候不够精细,想要改成和git diff --word-diff一样的单词级展示其实很简单,分两种场景给你说:
一、单次临时生效
如果你只是偶尔想用单词diff来暂存,不用改配置,直接在命令前加上环境变量就行:
GIT_DIFF_OPTS="--word-diff" git add -p
运行后你会看到和git diff --word-diff完全一致的差异展示,精准到单词的修改都会被标出来。
二、永久默认生效(分两种配置方式)
如果你想每次用git add -p都自动用单词diff,有两种配置思路:
1. 仅让git add -p生效(不影响普通git diff)
这个是更精准的方案,不会改变你平时用git diff的习惯,只针对交互式暂存生效:
# 全局配置(所有仓库都生效) git config --global add.interactive.diffOptions "--word-diff" # 仅当前仓库生效 git config add.interactive.diffOptions "--word-diff"
配置完之后,下次再运行git add -p,就会自动用单词diff展示变更了。
2. 全局启用单词diff(所有diff场景都生效)
如果你希望不管是git diff还是git add -p,都默认用单词级diff展示,可以直接开启全局的worddiff配置:
# 全局启用单词diff git config --global diff.worddiff true # 可选:设置单词diff的展示格式,比如带颜色的版本 git config --global diff.worddiff color
这样所有的diff输出都会变成单词级的,包括git diff、git show等命令。
另外要提醒下,这个配置使用的是正宗的--word-diff,和你提到的git diff --word-diff完全一致,和--color-words的实现逻辑不同,完全符合你的需求~
内容的提问来源于stack exchange,提问作者user82216
相关产品推荐
相关产品推荐

