Как выполнить трехстороннюю визуальную разницу на git?

Я хотел бы сделать трехсторонний diff одного файла, который существует в двух разных ветвях, т.е. последний фиксатор в каждой ветки, а также рассмотреть общий предок. Я хочу использовать внешний инструмент, который позволяет делать трехстороннее сравнение. Я рассматривал возможность использования git diffftool, но, насколько я мог видеть, он позволяет сравнивать только 2 версии данного файла. Я мог бы использовать mergetool, но это заставило меня запустить сначала git merge, чтобы были установлены BASE, REMOTE и LOCAL. Я не хочу запускать git merge. Я просто хочу сначала выполнить трехсторонний diff, чтобы увидеть изменения, сделанные в файле в обеих ветвях, учитывая его общий предок.

Есть ли возможность делать то, что мне нужно, используя diffftool или mergetool? Благодаря

Ответ 1

Одним из решений является визуальный diffuse, который может непосредственно работать с версиями git и поддерживает n-образные представления.

Например, вы можете открыть трехсторонний diff между различными ветвями для файла:

diffuse -r master -r HEAD -r upstream file.txt