Git通过DiffMerge配置difftool和mergetool无法正常工作

时间:2017-10-14 15:02:30

标签: windows git diffmerge

我试图为git配置DiffMerge以用于difftool和mergetool。我使用了以下命令: -

命令提示符窗口中的以下命令将更新.gitconfig以配置GIT使用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,它会显示以下对话框: -

enter image description here

有什么问题?如何正确配置?

1 个答案:

答案 0 :(得分:0)

$LOCAL / $REMOTE mentioned in the doc必须由shell解释(如果从git bash而不是CMD会话输入)并由{{1}替换}。

直接编辑全局配置("")并添加缺少的元素以获取:

git config --global --edit