Автономное слияние / 3-сторонний эквивалент git diff -no-index

#git #command-line #diff #three-way-merge

#git #командная строка #diff #трехстороннее слияние

Вопрос:

Мы можем использовать git инструмент diff без репозиториев git git diff --no-index <FILE-A> <FILE-B> .

Существует ли аналогичная команда для запуска git алгоритма слияния с учетом трех входных файлов («наш», базовый и «их»)? И, в частности, он должен выводить стиль «diff3» (важно видеть «базу» в конфликте)

Я понимаю, что это не может быть таким же умным, как стратегия рекурсивного слияния git, но я был бы очень доволен чем-то базовым, например, стратегией «разрешить».

Комментарии:

1. linux.die.net/man/1/merge

2. @phd Я не нашел быстрого способа установить это в моей настройке macOS, но, читая документы, кажется, что это не в стиле git diff3 (о чем я действительно не просил в своем вопросе — я исправлю это)

Ответ №1:

 git merge-file -p --diff3 ours base theirs
  

Комментарии:

1. Спасибо! Я принял и отредактировал ответ, чтобы добавить -p параметр для вывода результата на стандартный вывод (в противном случае неясно, куда он идет)

2. @yairchu: без -p git merge-file этого результат записывается обратно в первый именованный файл ( ours здесь ).