Сравняване на код (Diff)
Сравнете две версии на код един до друг или в един ред, със синтактично оцветяване, номера на редове и unified diff за копиране или изтегляне.
Как да сравните две парчета код
- Поставете старата версия в Оригинален код, а новата – в Променен код.
- Изберете Език или оставете Автоматично разпознаване: инструментът познава по кода и показва разпознатия език до статистиката.
- Изберете Изглед: Един до друг или В един ред (unified).
- Задайте нужните опции: Игнорирай интервалите и отстъпите, Игнорирай регистъра, Подчертай променените думи и Покажи само промените (3 реда контекст).
- Щракнете Сравни. След първото сравнение резултатът следва промените ви, докато пишете.
- Щракнете Копирай като unified diff или Изтегли .diff, за да използвате промяната като пач.
Размени страните разменя двете версии, което превръща добавянията в изтривания и обратно.
Как се чете резултатът
Премахнатите редове са оцветени в червено и принадлежат на оригинала, а добавените – в зелено и принадлежат на новата версия. Всеки ред запазва номера си от собствения си файл, така че можете да отидете право към него в редактора.
- Един до друг поставя двата файла в две номерирани колони. Променен ред стои до новата си версия. При Подчертай променените думи се отбелязват думите, променени в реда; без нея и двата реда запазват пълните си цветове на синтаксиса.
- В един ред (unified) показва една колона като при преглед на код: за всеки променен блок първо идват премахнатите редове (−), после добавените (+), с номерата на редовете в старата и в новата версия.
- Покажи само промените (3 реда контекст) свива дългите непроменени участъци в маркер „⋯ N непроменени реда“, което прави големите файлове много по-лесни за преглед.
Редът със статистика брои добавените, премахнатите и непроменените редове.
Синтактично оцветяване
Оцветяването става във вашия браузър с highlight.js. Зарежда се само граматиката на избрания език, когато сравните за първи път, така че страницата остава лека. Поддържаните езици включват JavaScript, TypeScript, Python, Java, C#, C / C++, Go, Rust, PHP, Ruby, CSS, HTML / XML, JSON, YAML, SQL, Bash / Shell и Markdown. Автоматичното разпознаване ползва прости признаци (ключови думи, скоби, анализ на JSON); ако сгреши, изберете езика сами или изберете Обикновен текст.
Интервали, отстъпи и краища на редове
Игнорирай интервалите и отстъпите сравнява редовете, след като ги изреже и свие поредиците от интервали и табулации, така че файл, преотстъпен от 2 на 4 интервала или от табулации на интервали, не показва разлика. Краищата на редовете на Windows (CRLF) и Unix (LF) се нормализират преди сравнението, така че файл, променил само краищата на редовете, се отчита като еднакъв. Имайте предвид, че интервалите могат да имат значение в Python, YAML и Makefile: изключете опцията, когато отстъпът е значим.
Форматът unified diff
Експортираният пач използва стандартния unified формат, който четат git apply, patch и инструментите за преглед на код: заглавие с двете имена на файлове, после парчета, започващи с @@ -a,b +c,d @@, и три реда контекст около всяка промяна. Файловете се наричат original и changed с разширение според езика.
Често задавани въпроси
Качва ли се кодът ми на сървър?
Не. Сравнението и оцветяването се изпълняват локално във вашия браузър; кодът никога не напуска устройството ви.
С какво се различава от инструмента за сравняване на текст?
Използва същия механизъм за сравнение ред по ред, но добавя синтактично оцветяване, unified изглед, свиване на контекста и обработка на интервалите, пригодена за код.
Защо два реда се показват като променени, макар да изглеждат еднакви?
Вероятно се различават в невидими символи: интервали в края, табулации вместо интервали или неразкъсваем интервал. Отметнете Игнорирай интервалите и отстъпите, за да се уверите.
Мога ли да приложа изтегления пач с Git?
Да. Запазете го и изпълнете patch original.js < changes.diff или нагласете имената на файловете в заглавието и използвайте git apply.
Колко големи могат да бъдат фрагментите?
Няколко хиляди реда се сравняват бързо. Ако два много големи файла са напълно различни, инструментът спира след няколко секунди и ви моли да сравните по-малки части.
Сродни инструменти
- Сравняване на два текста Сравнете два текста и вижте всяка разлика един до друг или в един текст, по редове, думи или символи. Поверително, работи във вашия браузър.
- JSON форматиране и валидиране Безплатно форматиране и валидиране на JSON, което подрежда, минимизира и проверява JSON във вашия браузър, със синтактични грешки по ред и колона.
- Тестер на регулярни изрази Тествайте JavaScript регулярни изрази на живо с откроени съвпадения, улавящи групи, замяна и обяснение на всеки елемент на шаблона на разбираем език.