当我运行git-diffall (https://github.com/thenigan/git-diffall)或git difftool --dir-diff (都是从@Tim Henigan's SO贴子引用的)时,我会得到以下错误:

我的配置是:
非常奇怪的是,这个完全相同的设置可以在我的另一台机器上工作。
git config --global diff.tool和git config --local diff.tool都按预期返回"araxis“。
实际的本地回购配置包含以下部分:
[diff]
tool = araxis
[difftool "araxis"]
path = C:/Program Files/Araxis/Araxis Merge/compare.exe
prompt = false
[merge]
tool = araxis
[mergetool "araxis"]
path = C:/Program Files/Araxis/Araxis Merge/compare.exe这是Araxis文件引用的。
我不太清楚参数是如何真正传递给Araxis的,因此不知道如何进一步解决这个问题。
我需要执行哪些步骤来更正我的配置,以便我可以使用Araxis进行目录比较?
发布于 2014-03-06 04:56:37
在放下这件事之后,过了一段时间,我又回到了这个问题上,我发现了问题的原因。虽然我上面的研究是准确的,但它并没有揭示整个故事。经过进一步的挖掘,我发现了原因。
我对git config --global -l和git config --local -l的输出做了区分,并意识到我的衍射工具有一些相互冲突的(错误的)配置。我不知道他们是如何不同步的,但他们完全不同,这是死亡的赠品。
我的全局配置如下所示:
[merge]
tool = Araxis
[mergetool "kdiff3"]
path = c:/Program Files (x86)/KDiff3/kdiff3.exe
[diff]
guitool = araxis
tool = araxis
[difftool "kdiff3"]
path = c:/Program Files (x86)/KDiff3/kdiff3.exe
[difftool]
prompt = false
[difftool "Araxis"]
path = C:/Program Files/Araxis/Araxis Merge/Compare.exe
cmd = \"c:/Program Files/Araxis/Araxis Merge/Compare.exe\" -wait -merge -3 -a1 \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
[mergetool "Araxis"]
path = C:/Program Files/Araxis/Araxis Merge/Compare.exe
cmd = \"c:/Program Files/Araxis/Araxis Merge/Compare.exe\" -wait -merge -3 -a1 \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
[difftool "araxis"]
path = C:/Program Files/Araxis/Araxis Merge/Compare.exe
cmd = \"c:/Program Files/Araxis/Araxis Merge/Compare.exe\" -wait -merge -3 -a1 \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"我将其替换为本地配置的内容(张贴在OP中),并将工具配置从本地配置中删除。
这样做之后,我的问题就完全解决了。
我使用git config --global -e和git config --local -e进行实际编辑,这样就不会错误地编辑正确的文件。
https://stackoverflow.com/questions/21248145
复制相似问题