Допустим вы смотрите такой дифф, в котором много изменений, но по факту логика не поменялась:

Снимок экрана 2025-02-21 в 12.28.55 PM.png

А можно срендерить такой дифф, который будет сделан на основе AST-деревьев старого и нового кода, и он уже понятней:

Снимок экрана 2025-02-21 в 12.29.13 PM.png

Сделать так можно утилитой difftastic:

Difftastic, a structural diff tool that understands syntax

Установить:

brew install difftastic

Подключить к гиту так:

git config --global diff.external difft
git config --global difftool.difftastic.cmd 'difft "$MERGED" "$LOCAL" "abcdef1" "100644" "$REMOTE" "abcdef2" "100644"'
git config --global difftool.prompt false
git config --global pager.difftool true
git config --global diff.tool difftastic

Использовать следующим образом. Допустим хочется ветку B замержить в ветку А (например, А — это master), причем ветка A может тоже уехать вперед по истории. Срендерить дифф между B и A можно так:

git diff A..B

Синтаксис:

https://stackoverflow.com/a/24186641/1600438