我可以让 git add -p show changes like git diff --word-diff 吗?
Can I make git add -p show changes like git diff --word-diff?
我已经递归地替换了我的代码库中的许多单个单词模式。在提交之前,我需要检查每一个是否有错误的替换。让 git add -p
使用 --word-diff
使用 git diff
的格式对我有很大帮助,其中只标记更改的单词而不是整行。
有人在这里问过同样的问题,但也许是从那以后实施的?
https://groups.google.com/forum/#!topic/git-users/7uO2OUJGvP0
从 Git 2.9 开始,您可以使用 属性 interactive.diffFilter
(as I mentioned below this answer)
但是,自 Git 2.17 以来,任何 git -c interactive.diffFilter="git diff --color-words" add -p
都会生成一条错误消息
fatal: mismatched output from interactive.diffFilter
(如图)
所以使用 script for the interactive.diffFilter
setting 仍然是更安全的方法。
将 diff-highlight
添加到 interactive.diffFilter
配置项是最简单的选项(自 Git 2.9 起)。以下命令在 Debian/Ubuntu 上执行此操作:
git config interactive.diffFilter "perl /usr/share/doc/git/contrib/diff-highlight/diff-highlight"
git -c interactive.diffFilter="git diff --color-words" add -p
或 git config interactive.diffFilter "git diff --color-words"
之类的东西不能正常工作:add -p
总是提示第一个修改的文件。
我已经递归地替换了我的代码库中的许多单个单词模式。在提交之前,我需要检查每一个是否有错误的替换。让 git add -p
使用 --word-diff
使用 git diff
的格式对我有很大帮助,其中只标记更改的单词而不是整行。
有人在这里问过同样的问题,但也许是从那以后实施的? https://groups.google.com/forum/#!topic/git-users/7uO2OUJGvP0
从 Git 2.9 开始,您可以使用 属性 interactive.diffFilter
(as I mentioned below this answer)
但是,自 Git 2.17 以来,任何 git -c interactive.diffFilter="git diff --color-words" add -p
都会生成一条错误消息
fatal: mismatched output from interactive.diffFilter
(如图
所以使用 script for the interactive.diffFilter
setting 仍然是更安全的方法。
将 diff-highlight
添加到 interactive.diffFilter
配置项是最简单的选项(自 Git 2.9 起)。以下命令在 Debian/Ubuntu 上执行此操作:
git config interactive.diffFilter "perl /usr/share/doc/git/contrib/diff-highlight/diff-highlight"
git -c interactive.diffFilter="git diff --color-words" add -p
或 git config interactive.diffFilter "git diff --color-words"
之类的东西不能正常工作:add -p
总是提示第一个修改的文件。