Git: как настроить KDiff3 как инструмент слияния и инструмент diff
недавно я использовал GitExtension 2.46, но версия Git, которая имеет то же самое, - 1.9.4.msysgit.2. Желая использовать только команды Git, я удалил GitExtension и установил последнюю доступную версию Git и KDiff3.
когда я делаю слияние и возникают конфликты, я запускаю следующую команду:
$ git mergetool
затем я получаю сообщение:
инструмент слияния kdiff3 недоступен как 'kdiff3'.
Я думаю, что это должно быть по пути KDiff3.
окружающая среда
- ОС: Windows 10
- Git 2.6.1.окна.1
- KDiff3 0.9.98 (64-разрядная версия)
вопросы:
что я должен настроить в.файл gitconfig для команды
$ git mergetoolчтобы открыть графический интерфейс KDiff3 с версиями местные, REMOTE,базовый и слил конфликтного файла?Как настроить его для использования он имеет diff-инструмент?
4 ответов:
эти сайты были очень полезны, почти, mergetool и difftool. Я использовал глобальную конфигурацию, но может быть использован репозиторий без проблем. Вам просто нужно выполнить следующие команды:
git config --global --add merge.tool kdiff3 git config --global --add mergetool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe" git config --global --add mergetool.kdiff3.trustExitCode false git config --global --add diff.guitool kdiff3 git config --global --add difftool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe" git config --global --add difftool.kdiff3.trustExitCode falseиспользование
trustExitCodeопция зависит от того, что вы хотите сделать, когда возвращается инструмент diff. От документация:git-difftool вызывает инструмент diff индивидуально каждый файл. Ошибок, о которых сообщает инструмент сравнения игнорируются по умолчанию. Используйте --trust-exit-code сделать git-difftool выход, когда вызванный инструмент diff возвращает ненулевой код выхода.
просто продлить ответ @Иосифа:
после применения этих команд глобального
.gitconfigфайл будет иметь следующие строки (для ускорения процесса вы можете просто скопировать их в файл):[merge] tool = kdiff3 [mergetool "kdiff3"] path = C:/Program Files/KDiff3/kdiff3.exe trustExitCode = false [diff] guitool = kdiff3 [difftool "kdiff3"] path = C:/Program Files/KDiff3/kdiff3.exe trustExitCode = false
ну, проблема в том, что Git не может найти KDiff3 в %PATH%.
в типичной установке Unix все исполняемые файлы находятся в нескольких известных местах (
/bin/,/usr/bin/,/usr/local/bin/и т. д.), и можно вызвать программу, просто введя ее имя в процессоре оболочки (например,cmd.exe:) ).в Microsoft Windows программы обычно устанавливаются в выделенные пути, поэтому вы не можете просто ввести
kdiff3наcmdсессия и получить KDiff3 бегущий.трудное решение: вы должны сказать Git, где найти KDiff3, указав полный путь к
kdiff3.exe. К сожалению, Git не любит пробелы в спецификации пути в своей конфигурации, поэтому в последний раз, когда мне это было нужно, я закончил с этими древними "C:\Progra~1...\kdiff3.ехе", как будто это было в конце 1990-х годов :)простое решение: измените настройки компьютера и включите каталог с kdiff3.exe в %PATH%. Затем проверьте, можете ли вы вызвать его из cmd.exe по своему названию а затем запустить Git.
Мне нужно было добавить параметры командной строки или KDiff3 будет открываться только без файлов и запрашивать меня для базы, локальной и удаленной. Я использовал версию, поставляемую с TortoiseHg.
кроме того, мне нужно было прибегнуть к старым добрым именам файлов DOS 8.3.
[merge] tool = kdiff3 [mergetool "kdiff3"] cmd = /c/Progra~1/TortoiseHg/lib/kdiff3.exe $BASE $LOCAL $REMOTE -o $MERGEDоднако теперь он работает правильно.
Comments