【问题标题】:Why does git difftool use git diff instead?为什么 git difftool 使用 git diff 代替?
【发布时间】:2015-05-03 19:31:54
【问题描述】:

我希望git diff 成为一个快速命令行解决方案来查看两个文件之间的差异,然后我希望git difftool 启动 meld 以获得文件差异的更多图形视图。

目前,git diff 完全符合我的要求,但是当我运行 git difftool script.js 时,git 会尝试启动 vimdiff 而不是 meld:

Viewing (1/1): 'script.js'
Launch 'vimdiff' [Y/n]:

如果我使用git difftool -t meld script.js 指定该工具,它会尝试按应有的方式启动 meld:

Viewing (1/1): 'script.js'
Launch 'meld' [Y/n]:

我如何让 git difftool <filename> 启动 meld 而 git diff <filename> 仍然使用 vimdiff?


我的 .gitconfig 包含以下内容:

[diff]
     tool = vimdiff
[difftool]
    tool = meld
[difftool "meld"]
    path = C:\\Program Files (x86)\\Meld\\Meld.exe

【问题讨论】:

    标签: git diff config vimdiff meld


    【解决方案1】:
    git config --global diff.tool meld
    

    这会将默认的 difftool 设置为融合。 IE。当你在没有--tool 参数的情况下调用git difftool 时,git 将运行meld。

    您也可以删除配置的那部分,git 不会读取 difftool.tool,因为它不是 one of git's known config options

    [difftool]
        tool = meld
    

    【讨论】:

    • 完美,成功了,谢谢!但我不太明白发生了什么。该命令将[diff] tool=vimdiff 更改为[diff] tool=meld。当 .gitconfig 中的任何位置不再指定 vimdiff 时,git 如何知道将 vimdiff 用于git diff
    • Diff 不使用 vimdiff。 AFAIK,git diff 实现了自己的差异算法/在 shell 中显示差异的方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多