GitConfig反斜杠问题IntelliJ mergetool和difftool

时间:2018-11-15 23:23:11

标签: git intellij-idea mergetool git-difftool

我目前在C:\Users\me\.gitconfig中具有以下内容

[merge]
    tool = intellij
[mergetool "intellij"]
    cmd = cmd.exe //c "\"C:/Program Files/JetBrains/IntelliJ IDEA 2018.1.5/bin/idea.bat\" merge \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\""
    trustExitCode = true
[diff]
    tool = intellij
[difftool "intellij"]
    cmd = cmd.exe //c "\"C:/Program Files/JetBrains/IntelliJ IDEA 2018.1.5/bin/idea.bat\" diff \"$LOCAL\" \"$REMOTE\""

当我做git difftool时我会得到

'C:/Program' is not recognized as an internal or external command,
operable program or batch file.

[Git Docs]中提到了

  

识别以下转义序列(在\“和\旁边):\ n   对于换行符(NL),\ t用于水平制表符(HT,TAB),   \ b用于退格键(BS)。其他字符转义序列(包括八进制)   转义序列)无效。

我还查看了Syntax for specifying Windows paths并尝试了一些组合:

# Escape spaces
Program\\ Files
Program/ Files
Program\ Files

# Backslashes
C:\Program Files\...
# 'C:\Program' is not recognized

但是没有一个起作用,正确的方法是什么?

1 个答案:

答案 0 :(得分:0)

一种方法是测试unix语法

cmd = "/C/Program Files/JetBrains/IntelliJ IDEA 2018.1.5/bin/idea.bat"...

另一种方法是将C:/Program Files/JetBrains/IntelliJ IDEA 2018.1.5/bin添加到您的%PATH%中,使您可以直接引用bat文件。

cmd = cmd.exe /c idea.bat ...