wake-up-neo.com

Farbiger Git-Unterschied zu HTML

Ich nutze git diff --color-words gerne, um die Wörter zu sehen, die sich in einer Datei geändert haben:

Screenshot

Ich möchte diesen Unterschied jedoch mit jemandem teilen, der weder git noch ein Farbterminal hat. Kennt jemand ein Tool oder einen Trick, der farblich hinterlegte Terminalausgabe in HTML konvertieren kann?

58
hendry
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

Was ich wirklich brauchte, war ein ANSI to HTML-Konverter. Und ich habe auf http://www.pixelbeat.org/ einen sehr anständigen gefunden.

ANMERKUNG: Möglicherweise sehen Sie keine Färbung, es sei denn, Sie enthalten --color oder --color-words, wahrscheinlich, weil das Piping dazu führt, dass git diff Farben ausschließt.

HINWEIS 2: Möglicherweise müssen Sie gnu sed und awk installieren, insbesondere wenn Sie einen Mac verwenden. Tun Sie dies mit brew install gnu-sed gawk. Möglicherweise müssen Sie sie auch manuell zu Ihrem Pfad hinzufügen, z. mit ln -s /usr/local/Cellar/gnu-sed/4.2.2/bin/gsed /usr/local/bin/.

80
hendry

laden Sie diff2html herunter, extrahieren Sie es und konvertieren Sie diff in html mit diesem Befehl:

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

Es gibt mehr ... schau dir die diese Frage an.

Oder nach dem Schlagen:

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

laden Sie beide Ansifilter von this location herunter. Verwenden Sie diesen Befehl, um meine Datei in das HTML-Format zu konvertieren

ansifilter -i myfile -H -o myfile2.html

also ... das ist genau was du willst;)

11
Michel Gokan

Wenn Sie saubere Diffs mit übereinstimmender Linienähnlichkeit sehen möchten, besserer Wortvergleich , Syntax-Highlight und mehr Check-out diff2html das ist sehr anpassbar git diff to HTML presenter.

Um es in der Befehlszeile zu verwenden, können Sie diff2html-cli überprüfen. Dies ist eine einfache CLI, die in Node.js geschrieben wurde.

So können Sie Ihre Diffs mit Kollegen teilen, die in diffy.org integriert sind.

Schauen Sie sich ein diff-Beispiel an hier .

3
rtfpessoa

Kennen Sie kein Werkzeug, um genau das zu tun, was Sie möchten. Aber hier ist ein Stück Code, den ich häufig für die Ausgabe von HTML-formatierten farbigen Differenzen benutze: simplediff

Es ist in PHP und Python verfügbar. In der Ausgabe werden die Unterschiede mithilfe von <del>- und <ins>-Tags markiert, sodass Sie sie leicht mit CSS färben können.

3
slebetman

Vielleicht möchten Sie das github-Projekt rmed überprüfen, das ein Befehlszeilentool enthält, das statische, gemeinsam benutzbare HTML-Diffs mit vimdiff generiert.

1
rouble

Ich habe ein Perl-Skript erstellt, um eine HTML-Tabelle für den Git-Diff zu generieren. Um dieses Skript zuerst verwenden zu können, müssen Sie den Unterschied mit git diff sha1s ...> diff.file sammeln und dann diff2html.pl diff.file ..__ ausführen.

http://kernel-demystified.com/forum/index.php/topic,23.msg28.html#new

1
Samir Das

wenn Sie git bash verwenden, müssen Sie, wenn Sie git show verwenden, nur das kopieren, was in der Konsole angezeigt wird, und die Farben werden korrekt kopiert.