1

我目前有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)。其他字符转义序列(包括八进制转义序列)无效。

我还查看了用于指定 Windows 路径的语法并尝试了一些组合:

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

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

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

4

1 回答 1

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 文件中,允许您直接引用 bat 文件。

cmd = cmd.exe /c idea.bat ...
于 2018-11-16T06:09:00.280 回答