Git range-diff: проверить изменения после rebase

Категория: Git · Язык: Bash · Обновлено:

git range-diff показывает, какие коммиты и патчи изменились после rebase или пересборки ветки. Он помогает проверить новую серию отдельно от обычного diff файлов, сопоставляя патчи старой и новой версии и отмечая добавленные, удалённые или изменённые коммиты.

Сравнить ветку до и после rebase

Сразу после rebase, пока нужное состояние есть в reflog, сравните старый и новый tips относительно upstream:

Bash
git range-diff '@{u}' '@{1}' '@'

@{u} — upstream текущей ветки, @{1} — предыдущее значение HEAD из reflog, @ — текущий HEAD. Для явных сохранённых ссылок используйте форму git range-diff <base> <old-tip> <new-tip>:

Bash
git range-diff origin/main topic-before topic-after

Коммиты с = совпали, ! обозначает изменившийся патч, < — коммит только в старой серии, > — только в новой. Если rebase прошёл давно, проверьте reflog и подставьте точные ссылки на старую и новую серии.

range-diff предназначен для чтения человеком: его формат не стабилен для скриптов и результат не является патчем для применения. По умолчанию merge-коммиты не сравниваются; для них изучите --diff-merges. См. документацию git range-diff.