Почему я не могу настроить внешний difftool или mergetool для Git?

Я пытаюсь настроить внешний difftool и mergetool для Git под Windows 10.

Все говорит мне набрать две команды 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

Что я делаю неправильно?

2 ответа

Решение

Похоже, вы можете быть довольны полноценным GUI-клиентом. Я использовал Sourcetree для интеграции с внешними инструментами слияния (в OSX). И на самом деле, встроенный в Sourcetree инструмент слияния тоже великолепен.

Проверьте свой глобальный .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
Другие вопросы по тегам