← Ко всем open source проектам

diff-so-fancy

so-fancy/diff-so-fancy

diff-so-fancy — инструмент, который делает вывод git diff более читаемым.

Форки 345
Автор so-fancy
Язык Perl
Лицензия MIT
Обновлено 2026-06-27

Что это такое

diff-so-fancy — консольный инструмент для красивого отображения diff. Он делает вывод Git и обычного diff более читаемым для человека.

Идея проекта простая: качество ревью зависит не только от кода, но и от того, насколько быстро глаз понимает изменение. Стандартный diff точен, но не всегда удобен.

Что внутри

Проект написан на Perl и распространяется как скрипт с дополнительной библиотечной папкой. Его можно поставить через Homebrew, npm, пакеты Linux или вручную из релиза.

diff-so-fancy умеет менять оформление заголовков, hunk-индикаторов, пустых строк, ruler-линий и других деталей, чтобы вывод был спокойнее и структурнее.

Как используют

Чаще всего инструмент подключают как pager для Git. После этого обычный `git diff` или интерактивные операции показывают более читаемый вывод.

Он полезен разработчикам, которые много смотрят изменения в терминале: перед коммитом, во время ревью, при сравнении веток и разборе чужих правок.

Пример

Команды настраивают Git так, чтобы diff-so-fancy обрабатывал обычный вывод diff и интерактивный diff-filter.

Подключение к Git

Пример делает diff-so-fancy стандартным обработчиком вывода Git diff.

Язык: Bash
git config --global core.pager "diff-so-fancy | less --tabs=4 -RF"
git config --global interactive.diffFilter "diff-so-fancy --patch"

Сильные стороны и ограничения

Сильная сторона diff-so-fancy — малое изменение с большим ежедневным эффектом. Инструмент не меняет Git, а делает чтение изменений легче.

Ограничение — субъективность. Некоторым командам нужен максимально стандартный diff без украшений, особенно в документации или при обучении новичков.

Контекст проекта

diff-so-fancy ведется в репозитории so-fancy/diff-so-fancy; публичная история проекта начинается 2016-02-04. Основной язык, который показывает GitHub, — Perl, лицензия — MIT.

Для страницы каталога это важно как практический контекст: читатель видит не абстрактное название, а реальный проект с владельцем, лицензией, технической базой и открытой историей изменений.