Git & Version Control

Просмотр diffразберите уже готовый патч

Откройте унифицированный патч и переходите между файлами с номерами строк до и после изменения.

Просмотр diff

Исходный патч

Изменения

Патч обрабатывается в этом браузере: без отправки, доступа к репозиторию и выполнения.

Параметры отображения

Лимиты: 1 MiB UTF-8, 20 000 строк и 200 файлов. Регистр в фильтре пути не учитывается.

Ввод изменён. Перед экспортом повторите разбор.

Экспорт всегда содержит весь патч или всю сводку независимо от фильтра и страниц.

Просмотр diff пригодится, когда на ревью прислали только Git патч, а репозитория и двух полных версий файлов под рукой нет. Сначала можно понять изменения, уже записанные в приложении.

Здесь не нужно восстанавливать два документа, чтобы заново сравнить их. Сервис сохраняет порядок добавлений и удалений и показывает, к какому файлу относится каждый блок.

Зачем нужен Просмотр diff

От общего патча к конкретному изменённому пути.

Сопоставьте номера строк с двух сторон

Просмотр diff разделяет старую и новую нумерацию. Соседние удаления и добавления стоят рядом в исходном порядке, а контекст виден в обеих колонках. Отсутствующие в патче строки исходного файла не придумываются.

Один патч превращается в дерево файлов и две колонки удалённых и добавленных строк.

Ограничьте список, сохраните весь документ

Поиск находит фрагмент старого или нового пути. Фильтр меняет навигацию, но не общую статистику и не экспорт. Просмотр одного файла не превращает скачиваемый документ в неполный патч.

В дереве выделен один документ, а полный патч остаётся рядом.

Сначала диапазоны, затем порядок изменений

01

Получите патч без оболочки

Подойдёт git diff --no-color или стандартный унифицированный diff с парными заголовками файлов. Почтовый git format-patch нужно заменить обычным diff, полученным из исходного репозитория.

  • Локальные файлы читаются как UTF-8. Перед заменой текущего ввода откроется предпросмотр.
02

Выберите порядок или параллельное сравнение

В двух колонках соседние группы удалений и добавлений сопоставляются по порядку строк. Объединённый вид удобнее, если важна точная последовательность операций в самом патче.

  • Отключите авторазбор и используйте Ctrl/Cmd + Enter для текущего ввода.
03

Сверьте общую статистику

Проверьте число файлов, блоков и строк текста вместе с выбранным файлом. Бинарные маркеры считаются отдельно, поскольку не содержат доступных для чтения двоичных данных.

  • Фильтр и постраничный показ не сокращают копию патча и JSON-сводку.

Пути, диапазоны и проверяемые числа

Учитывайте изменения без текста

/dev/null обозначает отсутствующую сторону при добавлении или удалении файла. Переименование, копирование и смена режима доступа видны даже без текстовых блоков. Пути в кавычках Git декодируются для навигации.

Сверяйте заголовок с телом блока

Заголовок @@ задаёт число старых и новых строк. Разбор сопоставляет их с контекстом, удалениями и добавлениями. Обрезанные блоки и пересекающиеся диапазоны отклоняются с номером строки ввода; числа автоматически не исправляются.

Сохраняйте полную сводку

JSON содержит все изменённые файлы: пути, состояния, указанные режимы, число добавлений, удалений и блоков. Бинарные маркеры вынесены отдельно, поэтому отсутствие новых текстовых строк не означает, что изображение или другой двоичный файл не изменился.

Что нельзя установить по одному патчу

Проверка структуры не проверяет применимость
У страницы нет целевых файлов и базового коммита. Она не запускает git apply --check, не индексирует изменения и не создаёт коммит. Даже корректный патч может не подойти к текущему состоянию репозитория.
Только обычный двусторонний unified diff
Почтовые оболочки git format-patch, mbox, combined diff, вывод raw/name-only/stat и цветовые ANSI-последовательности отклоняются. Два полных текста тоже не являются входом: новый diff здесь не создаётся.
Бинарные данные остаются неизвестными
Binary files … differ отображается как метаданные. Данные literal/delta внутри GIT binary patch не декодируются. По маркеру нельзя сравнить пиксели, узнать байты или доказать корректность бинарного патча.
Ограниченный ввод, полный экспорт
Одновременно действуют пределы 1 MiB UTF-8, 20 000 физических строк и 200 файлов. Превышение любого останавливает весь разбор. Навигация расширяется по 50 файлов, результат по 100 строк; экспорт остаётся полным.
Без изменения исходных операций
Нет игнорирования пробелов, обратного патча, исправления счётчиков, подсветки синтаксиса и семантического анализа. Фильтр ищет подстроку пути без учёта регистра, а не regex или glob. Пропущенный контекст восстановить нельзя.

Вопросы: Просмотр diff

Что такое патч и можно ли его правда наложить?

Патч записывает изменения между версиями в текстовом формате. Эта страница только показывает его и проверяет структуру, но не накладывает на файлы. Возможность применения проверяют отдельно в нужном репозитории.

Отправляется ли куда-нибудь хоть один из текстов?

Здесь вводят один готовый патч, а не два полных текста. Он не отправляется на сервер: вставка и чтение локального файла обрабатываются в браузере. Загрузки по URL и хранения ссылок для совместного доступа нет.

В чем разница между унифицированным и параллельным различием?

Объединённый вид сохраняет порядок строк патча. Параллельный показывает старую и новую нумерацию рядом. Строки в соседних колонках сопоставлены по порядку, что не доказывает их смысловое соответствие.

Как я могу игнорировать различия в пробелах?

В этом просмотрщике такой настройки нет: пробелы и исходные операции сохраняются. Если нужен другой diff, сформируйте его с нужными параметрами в исходном репозитории и затем откройте здесь.

Есть ли ограничение на размер текста?

Да: 1 MiB в UTF-8, 20 000 строк и 200 файлов. Превышение останавливает разбор целиком, а не отбрасывает хвост. Создайте меньшие патчи по файлам или коммитам на стороне источника.

Остался вопрос?

Начните следующую проверку

Просмотр diff поможет найти нужный путь и сверить числа, прежде чем вы сохраните исходный патч целиком.

Проверка структуры не гарантирует применимость к репозиторию.