Skip to content
Опубликовано: 2025-03-20
Теги: git diff

Показать результат исправлений по символам

Я переработал текст с помощью AI для улучшения, а он вернул, как мне показалось, практически идентичную копию. Решил детально разобраться, что именно изменилось. Обычная утилита diff показала, что строка изменилась, но вручную сравнивать символы не хотелось. Быстрый поиск подсказал, что можно использовать git-diff для этих целей. В качестве примера, конечно же, приведу другой текст, чтобы просто продемонстрировать, как это работает.

Сравнение файлов вне репозитория

Чтобы сравнить два файла, которые не проиндексированы и не находятся в репозитории, с помощью git-diff, нужно добавить ключ --no-index:

git diff --no-index orig.txt fix.txt

Результат будет выглядеть так:

diff --git 1/orig.txt 2/fix.txt
index d16ca67..cffa233 100644
--- 1/orig.txt
+++ 2/fix.txt
@@ -1 +1 @@
-Это просто пример текста, который надо исправить. Я пишу как привык писать обычно. Мне не сложно написать большой текст, но надо в него вложить какую-то мысль. А самое сложное, как раз, придумать эту мысль. А это просто текст для проверки того как работает этот сервис. Что же, проверим и сравним результат на этом простом тексте.
+Это просто пример текста, который нужно исправить. Я пишу так, как привык писать обычно. Мне не сложно написать большой текст, но нужно вложить в него какую-то мысль. А самое сложное, как раз, придумать эту мысль. А это просто текст для проверки того, как работает этот сервис. Что же, проверим и сравним результат на этом простом тексте.

Результат не отличается от обычного diff, изменилась целая строка без конкретных указаний.

Подкрашивание изменившихся слов

Для точного указания изменений нужно использовать ключ --word-diff-regex=., который возвращает изменения в машиночитаемом формате:

git diff --no-index --word-diff-regex=. orig.txt fix.txt

Результат представлен на изображении для наглядности, так как встроенная подсветка синтаксиса не поддерживает этот формат: result1

Если требуется просто визуальное отображение изменений без специального форматирования, можно использовать ключ --color-words=.:

git diff --no-index --color-words=. orig.txt fix.txt

Результат также представлен на изображении, чтобы было видно, что возвращается в терминал: result2