2015-05-03 296 views
3

我想要git diff是一个快速命令行解决方案,以查看两个文件之间的差异,然后我想git difftool启动meld以更加图形化地查看文件差异。为什么git difftool会使用git diff?

目前,git diff不正是我想要它,但是当我运行git difftool script.js,git的尝试,而不是推出MELD的方面Vimdiff:

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 

回答

3
git config --global diff.tool meld 

这将设置默认difftool来合并。即当你调用git difftool而没有参数--tool时,git将运行meld。

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

[difftool] 
    tool = meld 
+1

完全,并获得成功,谢谢!但我不太明白发生了什么事。该命令将'[diff] tool = vimdiff'改为'[diff] tool = meld'。当gitconfig中的任何地方不再指定vimdiff时,git如何知道如何将vimdiff用于'git diff'? –

+1

差异不使用vimdiff。 AFAIK,git diff实现自己的差异算法/在shell中显示差异的方式。 –