2015-05-03 3 views
3

Я хочу git diff быть быстрым решением командной строки, чтобы увидеть разницу между двумя файлами, а затем я хочу, чтобы git difftool запускал meld для более графического представления различий в файлах.Почему git difftool использует git diff вместо этого?

В настоящее время, git diff делает именно то, что я хочу его, однако, когда я бегу git difftool script.js, мерзавец пытается запустить vimdiff вместо Meld:

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

Если я указываю инструмент с git difftool -t meld script.js он пытается запустить сливаться, как он должен:

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

Как получить git difftool <filename> начать сливаться в то время как 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.

Вы также можете удалить эту часть вашей конфигурации, мерзавец не будет читать difftool.tool, как это не one of git's known config options:

[difftool] 
    tool = meld 
+1

совершенны, что сделал трюк, спасибо! Но я не совсем понимаю, что произошло. Эта команда изменила '[diff] tool = vimdiff' на' [diff] tool = meld'. Как git знает использовать vimdiff для 'git diff', когда vimdiff больше не указан где-либо в файле .gitconfig? –

+1

Diff не использует vimdiff. AFAIK, git diff реализует свой собственный алгоритм diff/способ отображения diff в оболочке. –

 Смежные вопросы

  • Нет связанных вопросов^_^