Цветной Git diff в HTML - PullRequest
       33

Цветной Git diff в HTML

59 голосов
/ 06 января 2010

Мне нравится использовать git diff --color-words, чтобы четко видеть слова, которые изменились в файле:

Screenshot

Однако я хочу поделиться этим различием с кем-то без мерзавца или цветного терминала в этом отношении. Так кто-нибудь знает инструмент или трюк, который может конвертировать вывод цвета терминала в HTML?

Ответы [ 7 ]

83 голосов
/ 09 января 2010
wget "http://www.pixelbeat.org/scripts/ansi2html.sh" -O /tmp/ansi2html.sh
chmod +x /tmp/ansi2html.sh
git diff --color-words --no-index orig.txt edited.txt | \
/tmp/ansi2html.sh > 2beshared.html

Что мне действительно нужно, так это конвертер ANSI в HTML. И я нашел очень приличный на http://www.pixelbeat.org/.

ПРИМЕЧАНИЕ. Вы можете не увидеть никакой окраски, если не включите --color или --color-words, возможно, из-за того, что конвейерная обработка приводит к тому, что git diff исключает цвета.

ПРИМЕЧАНИЕ 2. Возможно, вам понадобится установить gnu sed и awk, особенно если вы работаете на Mac. Сделайте это с brew install gnu-sed gawk. Возможно, вам также придется добавить их в свой путь вручную, например, с ln -s /usr/local/Cellar/gnu-sed/4.2.2/bin/gsed /usr/local/bin/.

11 голосов
/ 06 января 2010

скачать diff2html, распаковать его и преобразовать diff в html с помощью этой команды:

$ diff2html file1.txt file2.txt > diff-demo1.htm

Есть еще ... взгляните на этот вопрос.

или после получения:

git diff --color-words --no-index orig.txt /tmp/edited.txt > myfile

загрузите оба ансифильтра из этого местоположения. и используйте эту команду для преобразования myfile в html формат

ansifilter -i myfile -H -o myfile2.html

так ... это именно то, что вы хотите;)

3 голосов
/ 10 января 2016

Если вы хотите увидеть чистые различия с совпадением строк , лучшее сравнение слов , подсветка синтаксиса и другие варианты diff2html , который очень настраиваемый git diff для HTML Presenter.

Чтобы использовать его в командной строке, вы можете проверить diff2html-cli , который является простым CLI, написанным на Node.js.

Таким образом, вы можете поделиться своими различиями с коллегами, с которыми он интегрирован diffy.org .

Проверьте образец сравнения здесь .

3 голосов
/ 06 января 2010

Не знаю, какой инструмент, чтобы делать именно то, что вы хотите. Но вот фрагмент кода, который я часто использую для вывода цветного diff в формате HTML: simplediff

Доступно на PHP и Python. Выходные данные помечают различия с помощью тегов <del> и <ins>, чтобы их можно было легко раскрасить с помощью CSS.

1 голос
/ 18 мая 2016

Возможно, вы захотите оформить проект github rmed , который предоставляет инструмент командной строки, который генерирует статические разделяемые HTML-различия с использованием vimdiff.

1 голос
/ 06 февраля 2012

Я создал скрипт perl для генерации html-таблицы для git diff. Чтобы использовать этот скрипт сначала вам нужно собрать diff с помощью git diff sha1s ...> diff.file, а затем запустить diff2html.pl diff.file Посетите:

http://kernel -demystified.com / форум / index.php / тема, 23.msg28.html # новый

0 голосов

когда я использую git bash, если вы используете git show, вам нужно только скопировать и вставить то, что показано в консоли, и оно правильно копирует цвета.

...