Недавно я использовал GitExtension 2.46, но версия Git, которая имеет то же самое, 1.9.4.msysgit.2. Желая использовать только команды Git, я удалил GitExtension и установил последнюю доступную версию Git и KDiff3 .
Когда я делаю слияние и у меня возникают конфликты, я запускаю следующую команду:
$ git mergetool
Затем я получаю сообщение:
Инструмент слияния kdiff3 недоступен как 'kdiff3'.
Я думаю, это должно быть по пути KDiff3.
Окружающая среда
- ОС: Windows 10
- Git 2.6.1.windows.1
- KDiff3 0,9,98 (64 бита)
Вопросы:
Что мне нужно настроить в файле .gitconfig для команды,
$ git mergetool
чтобы открыть графический интерфейс KDiff3 с версиями LOCAL , REMOTE , BASE и MERGED конфликтующего файла?Как настроить его на использование diff-tool?
Ответы:
Эти сайты были очень полезны, почти, mergetool и difftool . Я использовал глобальную конфигурацию, но без проблем может быть использован репозиторием. Вам просто нужно выполнить следующие команды:
Использование
trustExitCode
параметра зависит от того, что вы хотите сделать, когда инструмент diff возвращается. Из документации :источник
git config --global --add diff.guitool kdiff3
следующим образом:git config --global --add diff.tool kdiff3
--add
добавит вторую или третью запись при вызове несколько раз. Это трудно исправить позже, потому что его нельзя просто удалить с помощью--remove
. Просто установите значение без--add
должно быть в порядке.Просто чтобы расширить ответ @ Джозефа :
После применения этих команд ваш глобальный
.gitconfig
файл будет иметь следующие строки (для ускорения процесса вы можете просто скопировать их в файл) :источник
.gitconfig
Файл, который я редактировал, не был тем, который использовался. См. Stackoverflow.com/questions/2114111/… для определения загружаемых. (2) Не смешивайте и не сопоставляйтеcmd =
иpath =
в gitconfig, TL; DR: удалите cmd и просто используйте путьДля пользователей Mac
Вот принятый ответ @ Joseph, но с расположением пути установки Mac по умолчанию:
kdiff3
(Обратите внимание, что вы можете скопировать и вставить это и запустить его за один раз)
источник
--add
так как это может привести к 2 записям конфигурации, если вы запустите команду дважды. Это убирает беспорядок, потому что вы больше не можете удалить ни одной записи. См. Git-scm.com/docs/git-config : «Несколько опций могут быть добавлены к опции»Проблема в том, что 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.exe", как будто было поздно 1990-е годы :)Простое решение: отредактируйте настройки вашего компьютера и включите каталог с kdiff3.exe в% PATH%. Затем проверьте, можете ли вы вызвать его из cmd.exe по его имени, а затем запустите Git.
источник
Мне нужно было добавить параметры командной строки, иначе KDiff3 откроется только без файлов и запросит у меня базовый, локальный и удаленный. Я использовал версию, поставляемую с TortoiseHg .
Кроме того, мне нужно было прибегнуть к старым добрым именам файлов DOS 8.3.
Тем не менее, это работает правильно сейчас.
источник
Чтобы изменить Kris ' ответа , начиная с Git 2.20 (Q4 2018), соответствующей командой для
git mergetool
будетЭто потому, что "
git mergetool
" научился использовать--[no-]gui
опцию ", как и"git difftool
".См. Коммит c217b93 , коммит 57ba181 , коммит 063f2bd (24 октября 2018 г.) от Denton Liu (
Denton-L
) .(Слиты Junio C Hamano -
gitster
- в фиксации 87c15d1 , 30 окт 2018)источник
(Когда я пытался выяснить, как использовать kdiff3 из WSL git, я попал сюда и получил финальные фрагменты, поэтому я опубликую свое решение для всех, кто также наткнулся здесь, пытаясь найти этот ответ)
Как использовать kdiff3 в качестве инструмента сравнения / слияния для WSL git
С обновлением Windows 1903 это стало намного проще; просто используйте wslpath, и вам не нужно совместно использовать TMP из Windows в WSL, так как сторона Windows теперь имеет доступ к файловой системе WSL через \ wsl $:
До обновления Windows 1903
Шаги для использования kdiff3, установленного в Windows 10, в качестве инструмента сравнения / слияния для git в WSL:
источник