`git add --patch` 和 `--word-diff`

18

git add --patch 提供了一个很好的界面,用于查看未暂存的更改,然后仅将想要在下一次提交中使用的更改进行暂存。

很棒,除了一件事:没有明显的方法来选择要使用哪个 diff 视图。

特别是,我想能够配置 git add --patch 以向我呈现与 git diff --word-diff 相同的差异。

我该如何实现这一点?

(注意,--word-diff--word-diff --color 都不完全相同于 --color-words,因此这个问题(及其 answer)与 this question 及其答案不同。但是,那个问题的答案比这个问题的答案更全面,因此那可能是获取有关如何实现类似事情的更多信息的地方。)


可能是如何在git add --patch中使用--color-words?的重复问题。 - phd
@博士,谢谢。虽然相似,但并不完全一样。我现在已经澄清了这一点。 - user82216
请查看此处的答案:https://dev59.com/fFUM5IYBdhLWcg3wIddd#60970801。 - Zorglub29
1个回答

6
这是有可能的,具体如下:
git -c interactive.diffFilter="git diff --word-diff --color" add --patch

然而,Git所显示的内容和您通过交互式命令实际要提交的内容可能并不完全相符


6
git 2.17+版本中不再起作用,并会出现以下错误信息:fatal: mismatched output from interactive.diffFilter hint: Your filter must maintain a one-to-one correspondence hint: between its input and output lines. - Olivier Le Floch
1
@OlivierLeFloch,我理解这只是一种权宜之计,以避免错误的悄然引入。当然,在长期来看,实现一个无误差的 git add --patch --word-diff 的方法是非常可取的。 - user82216
2
我实际上在这方面做了更多的工作,并在此处详细说明了解决方案:https://dev59.com/Smgv5IYBdhLWcg3wDsrZ#52231087,使用`interactive.diffFilter`和`diff-highlight`。 - Olivier Le Floch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接