【问题标题】:Can I make "git gui" pass, say, "--patience" to "git diff"?我可以让“git gui”通过,比如“--patience”到“git diff”吗?
【发布时间】:2011-10-06 23:27:44
【问题描述】:

我真的只是在寻找一种方法来配置 git gui 以像 git diff --patience 一样生成差异,但我强烈怀疑任何可能允许我这样做的机制也会允许传递其他选项,所以为了更好地为后代服务,我提出了一个更笼统的问题:

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

【问题讨论】:

    标签: git git-diff git-gui


    【解决方案1】:

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

    不过,git-gui 是用 Tcl 编写的,所以很容易添加这个选项。如果你在你的系统上找到diff.tcl*,你可以在lappend cmd -p之后添加lappend cmd --patience

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


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

    【讨论】:

    • 最近已向 git-gui 提交了执行此操作的补丁,因此将来您将能够使用 gui.diffopts 添加参数并在 git-gui 的选项页面上进行编辑。
    • @patthoyts:感谢您指出这一点 - 我已经更新了我的答案,提到人们将来可以使用该选项。
    • @patthoyts:是的,也感谢您提供它!当我注意到它已被添加时,我非常高兴。
    【解决方案2】:

    @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

    【讨论】:

      猜你喜欢
      • 2015-11-28
      • 2011-05-01
      • 2017-10-28
      • 2011-03-18
      • 1970-01-01
      • 2018-10-25
      • 1970-01-01
      • 1970-01-01
      • 2011-04-24
      相关资源
      最近更新 更多