Русский ▾ Topics ▾ Latest version ▾ git-mergetool last updated in 2.52.0

НАЗВАНИЕ

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

ОБЗОР

git mergetool [--tool=<инструмент>] [-y | --[no-]prompt] [<файл>…​]

ОПИСАНИЕ

Используйте git mergetool для запуска одной из нескольких утилит слияния для разрешения конфликтов слияния. Обычно он запускается после git merge.

Если указан один или несколько параметров <файл>, программа инструмента слияния будет запущена для разрешения различий в каждом файле (пропуская те, в которых нет конфликтов). Указание каталога включит все неразрешённые файлы в этом пути. Если имена <файлов> не указаны, git mergetool запустит программу инструмента слияния для каждого файла с конфликтами слияния.

ПАРАМЕТРЫ

-t <инструмент>
--tool=<инструмент>

Использовать программу разрешения слияния, указанную <инструментом>. Допустимые значения включают emerge, gvimdiff, kdiff3, meld, vimdiff и tortoisemerge. Выполните git mergetool --tool-help для получения списка допустимых настроек <инструмента>.

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

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

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

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

Если пользовательский инструмент слияния правильно указывает на успех разрешения слияния с помощью своего кода выхода, то переменная конфигурации mergetool.<инструмент>.trustExitCode может быть установлена в true. В противном случае git mergetool предложит пользователю указать успех разрешения после выхода пользовательского инструмента.

--tool-help

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

-y
--no-prompt

Не запрашивать перед каждым вызовом программы разрешения слияния. Это значение по умолчанию, если программа разрешения слияния явно указана с помощью параметра --tool или переменной конфигурации merge.tool.

--prompt

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

-g
--gui

Когда git-mergetool вызывается с опцией -g или --gui, инструмент слияния по умолчанию будет прочитан из настроенной переменной merge.guitool вместо merge.tool. Если merge.guitool не установлен, будет использоваться инструмент, настроенный в merge.tool. Это может быть автоматически выбрано с помощью переменной конфигурации mergetool.guiDefault.

--no-gui

Это переопределяет предыдущую настройку -g или --gui или конфигурацию mergetool.guiDefault и читает инструмент слияния по умолчанию из настроенной переменной merge.tool.

-O<файл-порядка>

Обрабатывать файлы в порядке, указанном в <файле-порядка>, который содержит по одному шаблону glob оболочки на строку. Это переопределяет переменную конфигурации diff.orderFile (см. git-config[1]). Чтобы отменить diff.orderFile, используйте -O/dev/null.

КОНФИГУРАЦИЯ

Дальнейшее содержание этого раздела, повторяет то, что может быть найдено в git-config[1]:

mergetool.<инструмент>.path

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

mergetool.<инструмент>.cmd

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

mergetool.<инструмент>.hideResolved

Позволяет пользователю переопределить глобальное значение mergetool.hideResolved для конкретного инструмента. Полное описание см. в mergetool.hideResolved.

mergetool.<инструмент>.trustExitCode

Для пользовательской команды слияния укажите, можно ли использовать код завершения команды слияния для определения успешности слияния. Если это не установлено в true, проверяется временная метка целевого файла слияния, и предполагается, что слияние прошло успешно, если файл был обновлён; в противном случае пользователю предлагается указать успешность слияния.

mergetool.meld.hasOutput

Старые версии meld не поддерживают опцию --output. Git попытается определить, поддерживает ли meld --output, проверив вывод meld --help. Настройка mergetool.meld.hasOutput заставит Git пропустить эти проверки и вместо этого использовать настроенное значение. Установка mergetool.meld.hasOutput в true указывает Git безоговорочно использовать опцию --output, а false избегает использования --output.

mergetool.meld.useAutoMerge

Когда указан --auto-merge, meld автоматически сливает все неконфликтующие части, выделяет конфликтующие части и ожидает решения пользователя. Установка mergetool.meld.useAutoMerge в true указывает Git безоговорочно использовать опцию --auto-merge с meld. Установка этого значения в auto заставляет git определять, поддерживается ли --auto-merge, и использовать --auto-merge только когда доступно. Значение false полностью избегает использования --auto-merge и является значением по умолчанию.

mergetool.<вариант>.layout

Настроить макет разделённого окна для <варианта> vimdiff, который может быть vimdiff, nvimdiff, gvimdiff. При запуске git mergetool с --tool=<вариант> (или без --tool, если merge.tool настроен как <вариант>), Git обратится к mergetool.<вариант>.layout, чтобы определить макет инструмента. Если конфигурация, специфичная для варианта, недоступна, используется макет vimdiff в качестве запасного варианта. Если и он недоступен, будет использоваться макет по умолчанию с 4 окнами. Чтобы настроить макет, см. «ПОДСКАЗКИ ПО ВНУТРЕННИМ МЕХАНИЗМАМ» раздел.

mergetool.hideResolved

Во время слияния Git автоматически разрешает как можно больше конфликтов и записывает файл $MERGED, содержащий маркеры конфликтов вокруг любых конфликтов, которые он не может разрешить; $LOCAL и $REMOTE обычно являются версиями файла до разрешения конфликтов Git. Этот флаг приводит к перезаписи $LOCAL и $REMOTE, так что инструменту слияния представляются только неразрешённые конфликты. Может быть настроен для каждого инструмента через переменную конфигурации mergetool.<инструмент>.hideResolved. По умолчанию false.

mergetool.keepBackup

После выполнения слияния исходный файл с маркерами конфликтов может быть сохранён как файл с расширением .orig. Если эта переменная установлена в false, этот файл не сохраняется. По умолчанию true (т.е. сохранять резервные копии).

mergetool.keepTemporaries

При вызове пользовательского инструмента слияния Git использует набор временных файлов для передачи инструменту. Если инструмент возвращает ошибку и эта переменная установлена в true, эти временные файлы будут сохранены; в противном случае они будут удалены после завершения работы инструмента. По умолчанию false.

mergetool.writeToTemp

По умолчанию Git записывает временные версии BASE, LOCAL и REMOTE конфликтующих файлов в рабочем каталоге. При установке true Git попытается использовать для этих файлов временный каталог. По умолчанию false.

mergetool.prompt

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

mergetool.guiDefault

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

ВРЕМЕННЫЕ ФАЙЛЫ

git mergetool создаёт резервные файлы *.orig во время разрешения слияний. Их можно безопасно удалить после того, как файл был слит и сеанс git mergetool для него завершён.

Установка переменной конфигурации mergetool.keepBackup в false заставляет git mergetool автоматически удалять резервные файлы по мере успешного слияния файлов.

СОВЕТЫ ДЛЯ КОНКРЕТНЫХ ВНУТРЕННИХ МЕХАНИЗМОВ

vimdiff

Warning

Missing ru/mergetools/vimdiff.adoc

See original version for this content.

GIT

Является частью пакета git[1]