Git通过DiffMergeconfigurationdifftool和mergetool不起作用

我试图configurationDiffMerge git用于difftool和mergetool。 我用了下面的命令:

命令提示符窗口中的以下命令将更新您的.gitconfig以configurationGIT使用DiffMerge:

C:\> git config --global diff.tool diffmerge C:\> git config --global difftool.diffmerge.cmd "C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe \"$LOCAL\" \"$REMOTE\""` 

如果我检查.gitconfig的内容,它有以下内容:

  ` [diff] tool = diffmerge [mergetool "diffmerge"] cmd = C:/Program\\ Files/SourceGear/Common/DiffMerge/sgdm.exe -merge -result=\"\" \"\" \"\" \"\" trustExitCode = true [merge] tool = diffmerge [difftool "diffmerge"] cmd = C:/Program\\ Files/SourceGear/Common/DiffMerge/sgdm.exe \"\" \"\" [core] autocrlf = true excludesfile = C:\\Users\\dev\\Documents\\gitignore_global.txt [user] name = DESKTOP - VAFJEG6\\dev email = madsum.isalm2@gmail.com ` 

如果我尝试$ git config –global –list: –

  diff.tool=diffmerge mergetool.diffmerge.cmd=C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe -merge -result="" "" "" "" mergetool.diffmerge.trustexitcode=true merge.tool=diffmerge difftool.diffmerge.cmd=C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe "" "" core.autocrlf=true core.excludesfile=C:\Users\dev\Documents\gitignore_global.txt user.name=DESKTOP-VAFJEG6\dev user.email=madsum.isalm2@gmail.com` 

如果我尝试git $ git difftool,它显示了这个对话框: –

在这里输入图像描述

哪里不对? 如何正确configuration?

文档中提到的$LOCAL / $REMOTE必须由shell解释(如果从git bash而不是CMD会话中输入)并替换为""

直接编辑全局配置( git config --global --edit )并添加缺少的元素来获取:

  [difftool "DiffMerge"] cmd = 'C:/Program Files/SourceGear/Common/DiffMerge/sgdm.exe' "$LOCAL" "$REMOTE" [merge] tool = DiffMerge [mergetool "DiffMerge"] cmd = 'C:/Program Files/SourceGear/Common/DiffMerge/sgdm.exe' -merge -result="$PWD/$MERGED" "$PWD/$LOCAL" "$PWD/$BASE" "$PWD/$REMOTE" trustExitCode = true