Выберите git mergetool в зависимости от типа файла
При беге git mergetool
Я хотел бы, чтобы git выбрал инструмент объединения, основанный на расширении файла. Как я могу это сделать?
Аналогичный вопрос был задан здесь: Git: настроить шаблоны для difftool и mergetool, и ответом было написать пользовательский драйвер слияния. Тем не менее, похоже, что это будет выполнено на git merge
в то время как я хотел бы, чтобы инструмент слияния был выбран на git mergetool
,
Кажется, должен быть какой-то способ указать это с помощью.gitattributes, но я не могу понять, как это сделать. Любой совет?
1 ответ
Одно из решений (поскольку мой старый ответ не подходит для mergetool
), чтобы установить как mergetool
скрипт-обёртка.
git config --global merge.tool customMergeTool
git config --global mergetool.customMergeTool.cmd 'customMergeTool.sh \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"'
Этот скрипт-обертка customMergeTool.sh
было бы:
- проверить что
$BASE
есть (в частности, его расширение файла) - вызвать соответствующий инструмент слияния на основе этого расширения
- вернуть статус выхода этого
mergetool
Вот, например, скрипт, который elsevers: merge-wrapper
,