2015-05-03 343 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中顯示差異的方式。 –