n1ro°
RU

Компьютеры · Инструкция

Как сравнить ветку до и после rebase через git range-diff

`git diff` сравнивает снимки файлов, а `git range-diff` — две серии патчей. Это удобнее, когда после rebase нужно провер

Редакция N1RO · Проверено

Короткий ответ

Сразу после rebase выполните `git range-diff @{u} @{1} @`: Git сопоставит старую и новую серии коммитов и покажет, что реально изменилось.

Что делать

  1. 1. Проверьте исходную точку: Убедитесь, что `@{1}` — состояние ветки до последней операции, а `@` — текущее состояние.
  2. 2. Сравните серии: Запустите `git range-diff @{u} @{1} @` для типичного случая после rebase на upstream.
  3. 3. Читайте маркеры: Строка `=` означает соответствующий патч без существенных изменений, `!` — патч изменился, `<` или `>` — коммит есть только с одной стороны.
  4. 4. Сузьте проверку: При необходимости добавьте `-- path/` и сравнивайте только нужную часть дерева.

Пример

После `git rebase origin/main` команда `git range-diff origin/main @{1} @` показывает, какие патчи сохранились, изменились или появились заново.

Важно

Вывод `range-diff` предназначен для человека и не считается стабильным машинным форматом между версиями Git.

Как понять, что всё сработало

  • В `range-diff` пары с `=` не содержат ожидаемых смысловых изменений; строки с `!`, `<` и `>` просмотрены вручную.
  • Сравниваются именно старая и новая серии нужной ветки, а не случайные значения reflog.

Что учитывать

Вывод `range-diff` предназначен для человека и не считается стабильным машинным форматом между версиями Git.

Источники и проверка

Фактическая часть сверена по первичным источникам (в т.ч. git-range-diff Documentation). Пример и формулировки — редакция N1RO на 2026-09-18.