Сравнение кода онлайн — различия с подсветкой синтаксиса
Вставьте две версии кода или перетащите два файла — различия появятся сразу. Строки стоят друг напротив друга, правка внутри строки выделена отдельно, совпадающие участки свёрнуты. По изменениям удобно переходить стрелками, а результат можно сохранить как .patch для git apply.
−0+0 Версии совпадают
Код сравнивается в браузере и никуда не отправляется.
Как найти различия в коде и прочитать результат
Сравнение идёт построчно, как в git diff, а внутри изменённых строк — по символам.
Красное удалено, зелёное добавлено
Слева — версия «Было», справа — «Стало». Удалённые строки отмечены красным, добавленные — зелёным. Если в строке поменялась только часть, например значение переменной, этот фрагмент выделен плотнее остальной строки. Подсветка синтаксиса сохраняется и на изменённых строках, поэтому код читается как в редакторе.
Два вида для разных задач
«Рядом» ставит одинаковые строки двух версий на одну высоту: на месте удалённого или добавленного блока появляется пустое место. Так удобно сверять длинные файлы. «Одной колонкой» показывает удалённые строки прямо над добавленными, как в код-ревью на GitHub. На телефоне версии добавляются по шагам — на вкладках «Было» и «Стало», а результат открывается на вкладке «Различия».
Видно только то, что изменилось
Вокруг каждой правки остаются по 3 строки контекста, остальной совпадающий код свёрнут в полосу «Скрытые строки». Щелчок по ней показывает скрытые строки. Если нужно видеть файл целиком, выключите «Сворачивать совпадения» в меню «Настройки».
От правки к правке без прокрутки
Стрелки под редактором переходят к следующему и предыдущему изменению, с клавиатуры — Alt+F5 и Shift+Alt+F5, как в VS Code. Счётчик показывает, на каком изменении вы находитесь, а числа − и + — сколько строк удалено и добавлено.
Пробелы, переносы строк и кодировки
Что считается отличием, а что нет, и как сравнить файлы из разных систем.
Когда включать «Игнорировать отступы»
Если блок кода обернули в условие или сменили табуляцию на пробелы, отступ меняется у каждой строки, хотя логика та же. С этой настройкой из меню «Настройки» пробелы и табуляция в начале и в конце строк не считаются изменением, и на виду остаются только настоящие правки. Пробелы внутри строки по-прежнему сравниваются. Патч при этом остаётся точным: отступы в нём сохранены.
Разные переносы строк — не отличие
Windows завершает строки символами CRLF, Linux и macOS — LF. Инструмент сравнивает содержимое строк, поэтому файл, сохранённый в Windows, и тот же файл из репозитория совпадут.
Кодировка файла определяется сама
Откройте файл кнопкой «Файл» в шапке панели или перетащите его на нужную панель. Два файла, брошенные вместе, встанут в «Было» и «Стало» по порядку. Инструмент читает UTF-8, Windows-1251 и UTF-16 с меткой BOM, поэтому кириллица из старых сайтов не превращается в «кракозябры». Язык подсветки выбирается по расширению. Размер одного файла — до 5 МБ, двоичные файлы вроде картинок и архивов не открываются.
Исправьте код прямо в сравнении
Обе панели редактируются, различия пересчитываются на ходу. Стрелка рядом с изменением возвращает в «Стало» отдельный блок из «Было» — удобно, когда из нескольких правок нужно оставить не все. Получившуюся версию можно скопировать или скачать файлом из меню «…» в шапке панели.
Любое действие — вставку, открытие файла, очистку, обмен версий — отменяет кнопка «Отменить» над панелями или Ctrl+Z.
Как создать и применить patch-файл
Патч — текстовый файл с различиями, который понимают git и утилита patch.
Unified diff с тремя строками контекста
«Копировать патч» и «Скачать .patch» сохраняют различия в формате unified diff — том же, что выдаёт git diff. Если код открыт из файла, в заголовках патча стоит его имя. Правильность патча мы проверяем применением через git apply, в том числе для файлов без перевода строки в конце, с CRLF и с кириллицей.
Команды для терминала
Положите патч в папку проекта, где лежит исходный файл, и выполните одну из команд. Первая только проверяет, что патч применится без конфликтов.
git apply --check changes.patch git apply changes.patch patch -p1 < changes.patch
Как сравнить два кода онлайн
Три шага для любого языка.
Добавьте две версии кода
Вставьте исходный код в панель «Было», изменённый — в «Стало». Можно открыть файлы кнопкой «Файл» или перетащить два файла сразу.
Посмотрите различия
Изменения подсвечиваются сразу, язык определяется автоматически. При необходимости выберите язык в списке, включите «Игнорировать отступы» в меню «Настройки» или вид «Одной колонкой».
Пройдите по правкам и сохраните патч
Переходите между изменениями стрелками или клавишами Alt+F5. Чтобы применить правки в проекте, скопируйте патч или скачайте файл .patch.
Частые вопросы о сравнении кода
О файлах, пробелах, языках и патчах.
Перетащите оба файла в редактор: первый встанет в «Было», второй в «Стало». Или откройте каждый кнопкой «Файл» в шапке своей панели. Различия появятся сразу, язык подсветки определится по расширению файла.
Нет. Сравнение и создание патча выполняются в вашем браузере. Редактор загружается с нашего сайта, код никуда не передаётся. Поэтому инструментом можно сравнивать закрытый рабочий код.
В меню «Настройки» включите «Игнорировать отступы». Тогда пробелы и табуляция в начале и в конце строк не считаются изменением. Пробелы внутри строки сравниваются всегда. Разные переносы строк CRLF и LF инструмент не считает отличием и без этой настройки.
HTML, CSS, SCSS, LESS, JavaScript, TypeScript, JSON, PHP, Python, SQL, XML, YAML, Markdown, Java, C#, C и C++, Go, Ruby, Shell и INI, включая .htaccess. Сравнивать можно любой текст: подсветка влияет только на вид, а не на поиск различий.
Положите файл .patch в папку проекта с исходным файлом и выполните git apply changes.patch. Без git подойдёт утилита patch: patch -p1 < changes.patch. Проверить патч без изменения файлов можно командой git apply --check changes.patch.
Инструмент сравнивает текст построчно, поэтому переставленные ключи будут видны как изменения. Если JSON записан в одну строку, сначала разверните его в JSON-форматтере: так различия будут видны по строкам, а не одной сплошной правкой.
Один файл — до 5 МБ. Файл на десятки тысяч строк с обычными правками сравнивается меньше чем за секунду. Дольше всего сравниваются полностью переписанные файлы: несколько тысяч строк без совпадений занимают несколько секунд, страница при этом не зависает.