Компьютеры · Инструкция
Как сравнить ветку до и после rebase через git range-diff
`git diff` сравнивает снимки файлов, а `git range-diff` — две серии патчей. Это удобнее, когда после rebase нужно провер
Короткий ответ
Сразу после rebase выполните `git range-diff @{u} @{1} @`: Git сопоставит старую и новую серии коммитов и покажет, что реально изменилось.
Что делать
- 1. Проверьте исходную точку: Убедитесь, что `@{1}` — состояние ветки до последней операции, а `@` — текущее состояние.
- 2. Сравните серии: Запустите `git range-diff @{u} @{1} @` для типичного случая после rebase на upstream.
- 3. Читайте маркеры: Строка `=` означает соответствующий патч без существенных изменений, `!` — патч изменился, `<` или `>` — коммит есть только с одной стороны.
- 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.