我可以将“git gui”传递给“git diff”吗?

时间:2011-10-06 23:27:44

标签: git git-diff git-gui

我真的只是想找到一种方法来配置git gui来生成差异,就像git diff --patience一样,但我强烈怀疑任何可能允许我这样做的机制都会允许其他选项同样也要通过,所以为了更好地为后人服务,我会提出更普遍的问题:

  

有没有办法设置一些git diff选项git gui应该用于生成它显示的差异?

2 个答案:

答案 0 :(得分:3)

据我所知,似乎并不是一般的方法。有一个特定的配置选项可用于设置要显示的上下文行数(gui.diffcontext),但没有通用配置选项可以将其他参数添加到git diff-index的调用中。

但是,git-gui是用Tcl编写的,因此添加此选项很容易。如果您在系统 * 上找到diff.tcl,则可以在行lappend cmd --patience之后添加行lappend cmd -p

* 如果您使用的是打包版本,则可能是/usr/share/git-gui/lib/diff.tcl ...


感谢git gui的维护者Pat Thoyts,在下面的评论中指出gui.diffopts选项现已添加到git gui,以便您可以自定义选项用于差异。 (这个变化是在this commit中引入的,但据我所知,还没有发布的git版本。)

答案 1 :(得分:0)

@Mark Longair 的回答暗示了这一点,但这里是您可以使用的完整命令,并设置了 --global 标志,因为我假设您希望始终使用它,而不仅仅是单个 git-gui实例。

git config --global gui.diffopts --diff-algorithm=patience

如果您想尝试其他差异算法,也可以使用以下三个命令中的任何一个。 https://luppeng.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