#git #command-line #diff #three-way-merge
#git #командная строка #diff #трехстороннее слияние
Вопрос:
Мы можем использовать git
инструмент diff без репозиториев git git diff --no-index <FILE-A> <FILE-B>
.
Существует ли аналогичная команда для запуска git
алгоритма слияния с учетом трех входных файлов («наш», базовый и «их»)? И, в частности, он должен выводить стиль «diff3» (важно видеть «базу» в конфликте)
Я понимаю, что это не может быть таким же умным, как стратегия рекурсивного слияния git, но я был бы очень доволен чем-то базовым, например, стратегией «разрешить».
Комментарии:
2. @phd Я не нашел быстрого способа установить это в моей настройке macOS, но, читая документы, кажется, что это не в стиле git diff3 (о чем я действительно не просил в своем вопросе — я исправлю это)
Ответ №1:
git merge-file -p --diff3 ours base theirs
Комментарии:
1. Спасибо! Я принял и отредактировал ответ, чтобы добавить
-p
параметр для вывода результата на стандартный вывод (в противном случае неясно, куда он идет)2. @yairchu: без
-p
git merge-file
этого результат записывается обратно в первый именованный файл (ours
здесь ).