Spec-Zone.ru › Git

git-difftool

Название

git-difftool — показ изменений с помощью распространённых инструментов сравнения

Краткое описание

git difftool [<options>] [<commit> [<commit>]] [--] [<path>…​]

Описание

git difftool — команда Git, позволяющая сравнивать и редактировать файлы между ревизиями с помощью распространённых инструментов сравнения. git difftool — интерфейсная оболочка для git diff, принимающая те же параметры и аргументы. См. git-diff[1].

Параметры

-d
--dir-diff

Копирует изменённые файлы во временное расположение и выполняет для них сравнение каталогов. В этом режиме перед запуском инструмента сравнения запрос подтверждения не выводится.

-y
--no-prompt

Не запрашивать подтверждение перед запуском инструмента сравнения.

--prompt

Запрашивать подтверждение перед каждым запуском инструмента сравнения. Это поведение по умолчанию; параметр предоставлен для переопределения любых настроек конфигурации.

--rotate-to=<file>

Начать показ различий с <file>; пути, расположенные перед ним, переместятся в конец вывода.

--skip-to=<file>

Начать показ различий с <file>, пропустив все пути перед ним.

-t <tool>
--tool=<tool>

Использовать инструмент сравнения, указанный в <tool>. Допустимые значения: emerge, kompare, meld и vimdiff. Выполните git difftool --tool-help, чтобы просмотреть список допустимых настроек <tool>.

Если инструмент сравнения не указан, git difftool будет использовать переменную конфигурации diff.tool. Если переменная конфигурации diff.tool не задана, git difftool выберет подходящий вариант по умолчанию.

Можно явно указать полный путь к инструменту, задав переменную конфигурации difftool.<tool>.path. Например, можно настроить абсолютный путь к kdiff3, задав difftool.kdiff3.path. В противном случае git difftool предполагает, что инструмент доступен в PATH.

Вместо запуска одного из известных инструментов сравнения можно настроить git difftool на запуск другой программы, указав командную строку для вызова в переменной конфигурации difftool.<tool>.cmd.

При вызове git difftool с этим инструментом (через параметр -t или --tool либо переменную конфигурации diff.tool) настроенная командная строка будет вызвана со следующими доступными переменными: $LOCAL содержит имя временного файла с содержимым исходного образа различий, а $REMOTE — имя временного файла с содержимым конечного образа различий. $MERGED — имя сравниваемого файла. $BASE предоставляется для совместимости с пользовательскими командами инструмента слияния и имеет то же значение, что и $MERGED.

--tool-help

Вывести список инструментов сравнения, которые можно использовать с --tool.

--symlinks
--no-symlinks

По умолчанию git difftool создаёт символические ссылки на рабочее дерево при запуске в режиме --dir-diff, если правая часть сравнения содержит те же данные, что и файл в рабочем дереве.

Указание --no-symlinks предписывает git difftool создавать копии. В Windows по умолчанию используется --no-symlinks.

-x <command>
--extcmd=<command>

Указать пользовательскую команду для просмотра различий. При указании этого параметра git-difftool игнорирует настройки по умолчанию и запускает <command> $LOCAL $REMOTE. Кроме того, в окружении задаётся $BASE.

-g
--gui
--no-gui

При вызове git-difftool с параметром -g или --gui инструмент сравнения по умолчанию выбирается из настроенной переменной diff.guitool, а не из diff.tool. Выбор может выполняться автоматически с помощью переменной конфигурации difftool.guiDefault. Параметр --no-gui позволяет переопределить эти настройки. Если diff.guitool не задана, будет выполнен перебор в следующем порядке: merge.guitool, diff.tool, merge.tool, пока не будет найден инструмент.

--trust-exit-code
--no-trust-exit-code

По умолчанию ошибки, сообщаемые инструментом сравнения, игнорируются. Используйте --trust-exit-code, чтобы команда git-difftool завершалась с ошибкой, если вызванный инструмент сравнения возвращает ненулевой код завершения.

git-difftool передаст код завершения вызванного инструмента, если используется --trust-exit-code.

git-diff[1].

Конфигурация

git difftool использует переменные конфигурации git mergetool, если соответствующие переменные difftool не заданы.

Всё содержимое этого раздела выше этой строки не включено из документации git-config[1]. Далее следует тот же текст, что и в этой документации:

diff.tool

Управляет выбором инструмента сравнения, используемого git-difftool[1]. Эта переменная переопределяет значение, заданное в merge.tool. Ниже приведён список допустимых встроенных значений. Любое другое значение считается пользовательским инструментом сравнения и требует определения соответствующей переменной difftool.<tool>.cmd.

diff.guitool

Управляет выбором инструмента сравнения, используемого git-difftool[1] при указании флага -g/--gui. Эта переменная переопределяет значение, заданное в merge.guitool. Ниже приведён список допустимых встроенных значений. Любое другое значение считается пользовательским инструментом сравнения и требует определения соответствующей переменной difftool.<guitool>.cmd.

  • araxis

  • bc

  • codecompare

  • deltawalker

  • diffmerge

  • diffuse

  • ecmerge

  • emerge

  • examdiff

  • guiffy

  • gvimdiff

  • kdiff3

  • kompare

  • meld

  • nvimdiff

  • opendiff

  • p4merge

  • smerge

  • tkdiff

  • vimdiff

  • vscode

  • winmerge

  • xxdiff

difftool.<tool>.cmd

Указать команду для запуска заданного инструмента сравнения. Указанная команда выполняется в командной оболочке; доступны следующие переменные: LOCAL содержит имя временного файла с содержимым исходного образа различий, а REMOTE — имя временного файла с содержимым конечного образа различий.

Подробнее см. описание параметра --tool=<tool> в git-difftool[1].

difftool.<tool>.path

Переопределить путь к указанному инструменту. Это полезно, если инструмент не находится в PATH.

difftool.trustExitCode

Завершить работу difftool, если вызванный инструмент сравнения возвращает ненулевой код завершения.

Подробнее см. описание параметра --trust-exit-code в git-difftool[1].

difftool.prompt

Запрашивать подтверждение перед каждым запуском инструмента сравнения.

difftool.guiDefault

Задайте значение true, чтобы по умолчанию использовать diff.guitool (эквивалентно указанию аргумента --gui), или auto, чтобы выбирать diff.guitool или diff.tool в зависимости от наличия значения переменной окружения DISPLAY. По умолчанию используется false; аргумент --gui необходимо указать явно, чтобы использовать diff.guitool.

См. также

git-diff[1]

Показ изменений между коммитами, коммитом и рабочим деревом и т. д.

git-mergetool[1]

Запуск инструментов разрешения конфликтов слияния

git-config[1]

Получение и настройка параметров репозитория или глобальных параметров

difftool

© 2005–2026 Linus Torvalds and others
Licensed under the GNU General Public License version 2.
https://git-scm.com/docs/git-difftool

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API