Превращаем git diff в произведение искусства с diff-so-fancy
Знакомая ситуация: вы запускаете git diff и видите монотонные строки с плюсами и минусами, где сложно сходу понять суть изменений? Вот решение, которое уже оценили 17 тысяч разработчиков — diff-so-fancy.

Что не так с обычным diff?
Стандартный вывод git diff создан для машин, а не для людей. Он:
- Плохо выделяет важные изменения
- Захламляет экран техническими символами
- Теряет контекст при больших изменениях
diff-so-fancy решает эти проблемы, сохраняя всю техническую информацию, но представляя её в удобном для разработчика виде.
Три причины попробовать diff-so-fancy
-
Человекочитаемый формат
- Цветовое выделение изменений
- Упрощённые заголовки файлов
- Удаление лишних символов (+/-)
-
Гибкая настройка
git config --bool --global diff-so-fancy.markEmptyLines false git config --global diff-so-fancy.rulerWidth 80Можно настроить буквально каждый аспект отображения.
-
Простота установки
- Доступен через npm, brew, apt и другие пакетные менеджеры
- Настраивается одной командой для всех git-дифов
Под капотом
Проект написан на Perl и состоит из:
- Основного скрипта обработки
- Библиотеки вспомогательных функций
- Набора тестов для проверки работы
Интересно, что проект поддерживает не только git, но и обычные diff-выводы:
diff -u file_a file_b | diff-so-fancy
Кому особенно пригодится?
- Командная разработка — код-ревью станет нагляднее
- Работа с legacy-кодом — проще отслеживать изменения в больших файлах
- Обучение Git — новичкам проще понимать изменения
# Установка через Homebrew (macOS)
brew install diff-so-fancy
# Настройка для всех git diff
git config --global core.pager "diff-so-fancy | less --tabs=4 -RF"
Альтернативы и конкуренты
Хотя diff-so-fancy — не единственный инструмент для красивых дифов (есть Delta и другие), он остаётся самым:
- Простым в установке
- Универсальным (работает везде, где есть Perl)
- Настраиваемым
После недели использования diff-so-fancy я уже не представляю, как жил без него. Это один из тех инструментов, которые:
- Не требуют времени на освоение
- Дают мгновенный эффект
- Экономят время при каждом использовании
Рекомендую попробовать всем, кто регулярно работает с git. Установка займёт минуту, а пользоваться будете годами.
