2

我更喜欢meld用作差异工具。但是它没有快速解决所有简单冲突的选项,所以在合并的情况下我想使用 kdiff3

我已经设置merge.tool为 kdiff3 并diff.guitool融合,但git difftool仍然总是运行 kdiff3

[merge]
        tool = kdiff3
        conflictstyle = diff3

[diff]
        guitool = meld
        renames = copies
        mnemonicPrefix = true

[difftool]
        prompt = false

怎么git difftoolmeld

4

2 回答 2

5

注意:从 Git 2.22(2019 年第二季度)开始,{diff,merge}.{tool,guitool}配置变量的组合以合理的顺序作为彼此的后备设置。

请参阅提交 6c22d71提交 7f978d7提交 60aced3提交 884630b提交 05fb872(2019 年 4 月 29 日)和提交 57d93c1提交 e9d309e(2019 年 4 月 24 日),作者Denton Liu ( Denton-L)
(由Junio C Hamano 合并 -- gitster--85ac27e 提交中,2019 年 5 月 19 日)

在您的情况下,由于未定义 difftool :

difftool: 回退merge.guitool

在 git-difftool.txt 中,它说

当尚未定义 difftool 等效项时,' ' 回退到 ' ' 配置变量git difftoolgit mergetool

但是,当diff.guitool丢失时,它不会回退到任何东西。让 git-difftool 回退到merge.guitool何时diff.guitool丢失。

该文档现在包括:

git difftool -g/--gui

当使用or选项git difftool调用 ' '时,将从配置的变量中读取默认差异工具,而不是从. 该选项可用于覆盖此设置。 -g--guidiff.guitooldiff.tool
--no-gui

如果diff.guitool未设置,我们将按 , 的顺序回退,merge.guitool直到 找到工具。diff.toolmerge.tool

于 2019-05-19T21:40:18.187 回答
3

diff.guitool仅在您使用--guiflag时适用。

设置diff.toolmerge.tool应该制作git difftoolgit mergetool使用不同的工具:

[merge]
        tool = kdiff3

[diff]
        tool = meld
于 2017-09-14T12:35:31.920 回答