Превращаем git diff в произведение искусства с diff-so-fancy

28 Jul, 2026
18,078
🔱 346
👥 108

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

Сравнение стандартного git diff и diff-so-fancy

Что не так с обычным diff?

Стандартный вывод git diff создан для машин, а не для людей. Он:

  • Плохо выделяет важные изменения
  • Захламляет экран техническими символами
  • Теряет контекст при больших изменениях

diff-so-fancy решает эти проблемы, сохраняя всю техническую информацию, но представляя её в удобном для разработчика виде.

Три причины попробовать diff-so-fancy

  1. Человекочитаемый формат

    Реклама
    • Цветовое выделение изменений
    • Упрощённые заголовки файлов
    • Удаление лишних символов (+/-)
  2. Гибкая настройка

    git config --bool --global diff-so-fancy.markEmptyLines false
    git config --global diff-so-fancy.rulerWidth 80
    

    Можно настроить буквально каждый аспект отображения.

  3. Простота установки

    • Доступен через 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 я уже не представляю, как жил без него. Это один из тех инструментов, которые:

  1. Не требуют времени на освоение
  2. Дают мгновенный эффект
  3. Экономят время при каждом использовании

Рекомендую попробовать всем, кто регулярно работает с git. Установка займёт минуту, а пользоваться будете годами.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.