我真的只是在寻找一种方法来配置git gui
生成差异,就像 by 一样git diff --patience
,但我强烈怀疑任何可能允许我这样做的机制也会允许传递其他选项,所以我问了更一般的问题为了更好地为后代服务:
有没有办法设置一些应该用于生成它显示的差异的
git diff
选项?git gui
据我所知,似乎没有一种通用的方法可以做到这一点。有一个特定的配置选项可用于设置要显示的上下文行数 ( gui.diffcontext
),但没有通用配置选项可将其他参数添加到git diff-index
.
但是,git-gui
它是用 Tcl 编写的,因此很容易添加此选项。如果您diff.tcl
在系统上找到*您可以在该行lappend cmd --patience
之后添加该行lappend cmd -p
。
*如果您使用的是打包版本,则可能.../usr/share/git-gui/lib/diff.tcl
感谢 的维护者 Pat Thoytsgit gui
在下面的评论中指出gui.diffopts
现在已经添加了一个选项,git gui
以便您可以自定义用于差异的选项。(此提交中引入了该更改,但据我所知尚未在 git 的发布版本中。)
@Mark Longair 的回答暗示了这一点,但这是您可以使用的完整命令,并--global
设置了标志,因为我假设您始终想要这个,而不仅仅是单个 git-gui 实例。
git config --global gui.diffopts --diff-algorithm=patience
如果您想尝试其他差异算法,也可以使用以下三个命令中的任何一个。https://lupeng.wordpress.com/2020/10/10/when-to-use-each-of-the-git-diff-algorithms/很好地直观地展示了不同的结果。
git config --global gui.diffopts --diff-algorithm=histogram
git config --global gui.diffopts --diff-algorithm=meyer
git config --global gui.diffopts --diff-algorithm=minimal