Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.53.0 → 2.54.0 no changes
-
2.52.0
2025-11-17
- 2.51.2 no changes
-
2.51.1
2025-10-15
- 2.50.1 → 2.51.0 no changes
-
2.50.0
2025-06-16
- 2.45.1 → 2.49.1 no changes
-
2.45.0
2024-04-29
- 2.43.1 → 2.44.4 no changes
-
2.43.0
2023-11-20
- 2.41.1 → 2.42.4 no changes
-
2.41.0
2023-06-01
- 2.38.3 → 2.40.4 no changes
-
2.38.2
2022-12-11
- 2.38.1 no changes
-
2.38.0
2022-10-02
- 2.37.1 → 2.37.7 no changes
-
2.37.0
2022-06-27
- 2.31.1 → 2.36.6 no changes
-
2.31.0
2021-03-15
- 2.22.1 → 2.30.9 no changes
-
2.22.0
2019-06-07
- 2.20.1 → 2.21.4 no changes
-
2.20.0
2018-12-09
- 2.12.5 → 2.19.6 no changes
-
2.11.4
2017-09-22
- 2.2.3 → 2.10.5 no changes
-
2.1.4
2014-12-17
-
2.0.5
2014-12-17
ОПИСАНИЕ
Используйте git mergetool для запуска одной из нескольких утилит слияния для разрешения конфликтов слияния. Обычно он запускается после git merge.
Если указан один или несколько параметров <файл>, программа инструмента слияния будет запущена для разрешения различий в каждом файле (пропуская те, в которых нет конфликтов). Указание каталога включит все неразрешённые файлы в этом пути. Если имена <файлов> не указаны, git mergetool запустит программу инструмента слияния для каждого файла с конфликтами слияния.
ПАРАМЕТРЫ
-
-t<инструмент> -
--tool=<инструмент> -
Использовать программу разрешения слияния, указанную <инструментом>. Допустимые значения включают
emerge,gvimdiff,kdiff3,meld,vimdiffиtortoisemerge. Выполнитеgitmergetool--tool-helpдля получения списка допустимых настроек <инструмента>.Если программа разрешения слияния не указана,
gitmergetoolбудет использовать переменную конфигурацииmerge.tool. Если переменная конфигурацииmerge.toolне установлена,gitmergetoolвыберет подходящее значение по умолчанию.Вы можете явно указать полный путь к инструменту, установив переменную конфигурации
mergetool.<инструмент>.path. Например, вы можете настроить абсолютный путь к kdiff3, установивmergetool.kdiff3.path. В противном случаеgitmergetoolпредполагает, что инструмент доступен в$PATH.Вместо запуска одной из известных программ слияния,
gitmergetoolможно настроить для запуска альтернативной программы, указав командную строку для вызова в переменной конфигурацииmergetool.<инструмент>.cmd.Когда
gitmergetoolвызывается с этим инструментом (либо через опцию-tили--tool, либо через переменную конфигурацииmerge.tool), настроенная командная строка будет вызвана с переменными:BASE— имя временного файла, содержащего общую базу для слияния, если доступно;LOCAL— имя временного файла, содержащего содержимое файла в текущей ветке;REMOTE— имя временного файла, содержащего содержимое файла для слияния;MERGED— имя файла, в который инструмент слияния должен записать результат разрешения слияния.Если пользовательский инструмент слияния правильно указывает на успех разрешения слияния с помощью своего кода выхода, то переменная конфигурации
mergetool.<инструмент>.trustExitCodeможет быть установлена вtrue. В противном случаеgitmergetoolпредложит пользователю указать успех разрешения после выхода пользовательского инструмента. -
--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. При запускеgitmergetoolс--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конфликтующих файлов в рабочем каталоге. При установкеtrueGit попытается использовать для этих файлов временный каталог. По умолчанию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 автоматически удалять резервные файлы по мере успешного слияния файлов.
GIT
Является частью пакета git[1]