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. Выполнитеgitdifftool--tool-help, чтобы просмотреть список допустимых настроек<tool>.Если инструмент сравнения не указан,
gitdifftoolбудет использовать переменную конфигурацииdiff.tool. Если переменная конфигурацииdiff.toolне задана,gitdifftoolвыберет подходящий вариант по умолчанию.Можно явно указать полный путь к инструменту, задав переменную конфигурации
difftool.<tool>.path. Например, можно настроить абсолютный путь к kdiff3, задавdifftool.kdiff3.path. В противном случаеgitdifftoolпредполагает, что инструмент доступен в PATH.Вместо запуска одного из известных инструментов сравнения можно настроить
gitdifftoolна запуск другой программы, указав командную строку для вызова в переменной конфигурацииdifftool.<tool>.cmd.При вызове
gitdifftoolс этим инструментом (через параметр-tили--toolлибо переменную конфигурацииdiff.tool) настроенная командная строка будет вызвана со следующими доступными переменными:$LOCALсодержит имя временного файла с содержимым исходного образа различий, а$REMOTE— имя временного файла с содержимым конечного образа различий.$MERGED— имя сравниваемого файла.$BASEпредоставляется для совместимости с пользовательскими командами инструмента слияния и имеет то же значение, что и$MERGED. -
--tool-help -
Вывести список инструментов сравнения, которые можно использовать с
--tool. -
--symlinks -
--no-symlinks -
По умолчанию
gitdifftoolсоздаёт символические ссылки на рабочее дерево при запуске в режиме--dir-diff, если правая часть сравнения содержит те же данные, что и файл в рабочем дереве.Указание
--no-symlinksпредписываетgitdifftoolсоздавать копии. В 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