为什么我不能为 Git 配置外部 difftool 或 mergetool?
Why can't I configure an external difftool or mergetool for Git?
我正在尝试为 Git 在 Windows 10.
下配置外部 difftool 和 mergetool
一切都告诉我输入两个 Git 命令,如下所示。
有人说要使用 wrapper.sh
而其他人则说没有必要。
git config --global diff.tool diffmerge
(第二行看起来像这样:)
git config --global difftool.diffmerge.cmd "path to sgdm.exe or some_wrapper.sh" $LOCAL $REMOTE**
这对我不起作用。我也试过:
git config --global difftool.diffmerge.cmd C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe \"$LOCAL\" \"$REMOTE\"
git config --global difftool.diffmerge.cmd C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe "$LOCAL" "$REMOTE"
git config --global difftool.diffmerge.cmd "C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe $LOCAL $REMOTE"
我的配置文件如下所示:
[filter "lfs"]
clean = git-lfs clean %f
smudge = git-lfs smudge %f
required = true
[user]
name= John Doe
[diff]
tool = dm
[difftool]
prompt = true
[difftool "dm"]
cmd = \"C:\Program Files\SourceGear\Common\DiffMerge\sgdm.exe\" \"$LOCAL\" \"$REMOTE\" //t
我做错了什么?
检查您的全局 .gitconfig
文件以确保路径以正确的格式结束(用引号将路径和空格等括起来)。
这是我的配置文件中的相关部分:
[diff]
tool = vsdiffmerge
[difftool]
prompt = true
[difftool "vsdiffmerge"]
cmd = \"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\vsdiffmerge.exe\" \"$LOCAL\" \"$REMOTE\" //t
keepbackup = false
trustexistcode = true
[merge]
tool = vsdiffmerge
[mergetool]
prompt = true
[mergetool "vsdiffmerge"]
cmd = \"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\vsdiffmerge.exe\" \"$REMOTE\" \"$LOCAL\" \"$BASE\" \"$MERGED\" //m
keepbackup = false
trustexistcode = true
听起来您可能会对完整的 GUI 客户端感到满意。我用过Sourcetree to integrate with external merge tools (on OSX). And infact, Sourcetree's in-built merge tool也很好
我正在尝试为 Git 在 Windows 10.
下配置外部 difftool 和 mergetool一切都告诉我输入两个 Git 命令,如下所示。
有人说要使用 wrapper.sh
而其他人则说没有必要。
git config --global diff.tool diffmerge
(第二行看起来像这样:)
git config --global difftool.diffmerge.cmd "path to sgdm.exe or some_wrapper.sh" $LOCAL $REMOTE**
这对我不起作用。我也试过:
git config --global difftool.diffmerge.cmd C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe \"$LOCAL\" \"$REMOTE\"
git config --global difftool.diffmerge.cmd C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe "$LOCAL" "$REMOTE"
git config --global difftool.diffmerge.cmd "C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe $LOCAL $REMOTE"
我的配置文件如下所示:
[filter "lfs"]
clean = git-lfs clean %f
smudge = git-lfs smudge %f
required = true
[user]
name= John Doe
[diff]
tool = dm
[difftool]
prompt = true
[difftool "dm"]
cmd = \"C:\Program Files\SourceGear\Common\DiffMerge\sgdm.exe\" \"$LOCAL\" \"$REMOTE\" //t
我做错了什么?
检查您的全局 .gitconfig
文件以确保路径以正确的格式结束(用引号将路径和空格等括起来)。
这是我的配置文件中的相关部分:
[diff]
tool = vsdiffmerge
[difftool]
prompt = true
[difftool "vsdiffmerge"]
cmd = \"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\vsdiffmerge.exe\" \"$LOCAL\" \"$REMOTE\" //t
keepbackup = false
trustexistcode = true
[merge]
tool = vsdiffmerge
[mergetool]
prompt = true
[mergetool "vsdiffmerge"]
cmd = \"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\vsdiffmerge.exe\" \"$REMOTE\" \"$LOCAL\" \"$BASE\" \"$MERGED\" //m
keepbackup = false
trustexistcode = true
听起来您可能会对完整的 GUI 客户端感到满意。我用过Sourcetree to integrate with external merge tools (on OSX). And infact, Sourcetree's in-built merge tool也很好