В этой статье
Что такое текстовый diff?
Текстовый diff — это сравнение двух версий текста, которое точно показывает, что изменилось. Он отображает добавления (новые строки или символы), удаления (удалённый контент) и неизменный контекст. Инструменты diff занимают центральное место в системах контроля версий, проверке кода и сравнении документов.
Наиболее распространённый алгоритм diff — Myers diff, который находит минимальное количество правок (вставок и удалений), необходимых для преобразования одного текста в другой. Именно этот алгоритм используется в Git и большинстве diff-инструментов.
Как работает сравнение diff
Текстовый diff CheckTown сравнивает два текстовых ввода и наглядно представляет различия.
- Построчный diff — сравнивает тексты на уровне строк, показывая, какие строки были добавлены, удалены или изменены
- Diff по символам в строке — для изменённых строк подсвечивает конкретные символы, которые изменились
- Вид «бок о бок» — отображает обе версии параллельно для удобного визуального сравнения
Попробуйте бесплатно — без регистрации
Сравнить текст →Когда использовать текстовый diff
Текстовый diff полезен в любом рабочем процессе, где нужно выявить изменения между двумя версиями контента.
- Проверка кода — сравнивайте версии кода, чтобы понять, что изменилось в pull request или патче
- Сравнение документов — выявляйте изменения между версиями договоров, политических документов или файлов конфигурации
- Отладка данных — сравнивайте ответы API из разных окружений для выявления расхождений
Частые вопросы
Что такое формат unified diff?
Unified diff — это стандартный текстовый формат diff, используемый командами git diff и patch. Строки, начинающиеся с +, — это добавления, строки с - — удаления, строки без префикса — неизменный контекст. Маркеры @@ указывают, к каким номерам строк относится данный фрагмент.
В чём разница между word diff и line diff?
Line diff показывает целые строки как добавленные или удалённые. Word diff (git diff --word-diff) показывает изменения на уровне слов внутри строк, что упрощает обнаружение небольших правок в длинных строках. Diff на уровне символов показывает каждое отдельное изменение символа — он наиболее полезен при сравнении близких по содержанию строк.
Как игнорировать пробелы в diff?
Большинство инструментов diff поддерживают опции игнорирования пробелов. В Git используйте git diff -w, чтобы игнорировать все изменения пробелов, или -b, чтобы игнорировать изменения в количестве пробелов. Это удобно при сравнении кода, который был переформатирован без функциональных изменений, или текста из разных редакторов с разными символами конца строки.