українська мова ▾ Topics ▾ Latest version ▾ git-mergetool last updated in 2.52.0

НАЗВА

git-mergetool — Запуск інструментів розвʼязання конфліктів злиття для їх усунення

СИНОПСИС

git mergetool [--tool=<tool>] [-y | --[no-]prompt] [<file>…​]

ОПИС

Використовуйте git mergetool для запуску однієї з кількох утиліт злиття для розвʼязання конфліктів злиття. Зазвичай запускають після git merge.

Якщо вказано один або кілька параметрів <file>, буде запущено програму-інструмент злиття для усунення розбіжностей у кожному файлі (файли без конфліктів пропускаються). Якщо вказано теку, до обробки будуть включені всі нерозвʼязані файли в цьому шляху. Якщо імена файлів <file> не вказано, git mergetool запустить програму-інструмент злиття для кожного файлу, що містить конфлікти злиття.

ОПЦІЇ

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

Використовувати програму для розвʼязання конфліктів злиття, вказану в параметрі <tool>. Допустимі значення: emerge, gvimdiff, kdiff3, meld, vimdiff та tortoisemerge. Щоб переглянути список допустимих значень для параметра <tool>, виконайте команду git mergetool --tool-help.

Якщо програму для розвʼязання злиття не вказано, git mergetool використовуватиме змінну конфігурації merge.tool. Якщо змінна конфігурації merge.tool не встановлена, git mergetool вибере відповідне стандартне значення.

Ви можете явно вказати повний шлях до інструменту, встановивши змінну конфігурації mergetool.<tool>.path. Наприклад, ви можете налаштувати абсолютний шлях до kdiff3, встановивши mergetool.kdiff3.path. В іншому випадку, git mergetool припускає, що інструмент доступний у $PATH.

Замість запуску однієї з відомих програм для злиття, git mergetool можна налаштувати на запуск іншої програми, вказавши командний рядок для її виклику у конфігураційній змінній mergetool.<tool>.cmd.

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

Якщо власний інструмент злиття за допомогою коду завершення правильно вказує на успішне вирішення конфлікту, то для змінної конфігурації mergetool.<tool>.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<файл-порядку>

Файли обробляються у порядку, вказаному у файлі <orderfile>, у якому в кожному рядку міститься один шаблон оболонки. Замінює значення змінної конфігурації diff.orderFile (див. git-config[1]). Щоб скасувати дію diff.orderFile, використовуйте -O/dev/null.

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

Все, що знаходиться нижче цього рядка в цьому розділі, вибірково включено з документації git-config[1]. Вміст такий самий, як і там:

mergetool.<tool>.path

Перевизначає шлях для вказаного інструменту. Є корисним у випадку, якщо ваш інструмент відсутній у змінній $PATH.

mergetool.<tool>.cmd

Визначає команду для запуску вказаного інструменту злиття. Вказана команда виконується в оболонці з наступними доступними змінними: BASE — ім’я тимчасового файлу, що містить спільну базу файлів, які потрібно злити, якщо така є; LOCAL — ім’я тимчасового файлу, що містить вміст файлу з поточної гілки; REMOTE — ім’я тимчасового файлу, що містить вміст файлу з гілки, яка зливається; MERGED містить ім’я файлу, в який інструмент злиття повинен записати результати успішного злиття.

mergetool.<tool>.hideResolved

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

mergetool.<tool>.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.<variant>.layout

Налаштовує макет розділеного вікна для <variant> vimdiff, яким може бути будь-який із варіантів: vimdiff, nvimdiff, gvimdiff. При запуску git mergetool з параметром --tool=<variant> (або без --tool, якщо merge.tool налаштовано як <variant>), Git звернеться до файлу mergetool. <variant>.layout, щоб визначити макет інструменту. Якщо конфігурація для конкретного варіанту недоступна, як запасний варіант використовується конфігурація vimdiff. Якщо вона також недоступна, буде використано макет за замовчуванням із 4 вікнами. Щоб налаштувати макет, див. розділ «ПОРАДИ, ЩО СТОСУЮТЬСЯ БЕКЕНДУ» розділ.

mergetool.hideResolved

Під час злиття Git автоматично розвʼяже якомога більше конфліктів і створить файл $MERGED, що містить маркери конфліктів навколо тих конфліктів, які він не може вирішити; $LOCAL та $REMOTE зазвичай містять версії файлу, що існували до розвʼязання конфліктів Git. Цей прапорець призводить до перезапису $LOCAL та $REMOTE, щоб інструменту злиття були представлені лише нерозвʼязані конфлікти. Може бути налаштований для кожного інструменту окремо за допомогою змінної конфігурації mergetool.<tool>.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, де для використання merge.guitool необхідно явно вказати аргумент --gui.

ТИМЧАСОВІ ФАЙЛИ

git mergetool створює резервні копії файлів *.orig під час розвʼязання злиття. Їх можна безпечно видалити після обʼєднання файлу та завершення його сеансу git mergetool.

Встановлення змінної конфігурації mergetool.keepBackup на false призведе до того, що git mergetool автоматично видалятиме файли резервних копій після успішного обʼєднання файлів.

ПОРАДИ, ЩО СТОСУЮТЬСЯ БЕКЕНДУ

vimdiff

Warning

Missing uk/mergetools/vimdiff.adoc

See original version for this content.

GIT

Частина набору git[1]