我喜欢使用git diff --color-words
清楚地看到文件中已更改的字词:
然而,我想与没有git或彩色终端的人分享这种差异。那么有没有人知道可以将颜色转义终端输出转换为HTML的工具或技巧?
答案 0 :(得分:82)
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/
。
答案 1 :(得分:11)
下载diff2html,使用以下命令解压缩并将diff转换为html:
$ diff2html file1.txt file2.txt > diff-demo1.htm
还有更多......看看this问题。
gitting后或:
git diff --color-words --no-index orig.txt /tmp/edited.txt > myfile
从this位置下载ansifilter。并使用此命令将myfile转换为html格式
ansifilter -i myfile -H -o myfile2.html
所以......这正是你想要的;)
答案 2 :(得分:3)
不知道任何工具可以完全按照您的意愿行事。但这是我经常使用的一段代码输出html格式的彩色差异:simplediff
它可以在PHP和Python中使用。输出使用<del>
和<ins>
标记标记差异,以便您可以使用CSS轻松地为它们着色。
答案 3 :(得分:3)
如果您希望清除差异与行相似性匹配,更好的词比较,语法突出显示和更多查看diff2html这是非常可自定义的 git diff到HTML演示者。
要在命令行中使用它,您可以检查diff2html-cli这是一个用Node.js编写的简单CLI。
因此,您可以与其与diffy.org集成的同事分享您的差异。
查看差异样本here。
答案 4 :(得分:2)
我刚刚在 debian 存储库中找到了 aha;这很简单:
git diff --color | aha > white.html # white background
git diff --color | aha --black > black.html # black background
git diff --color | aha --pink > pink.html # pink background
它很小的下载大小 (<20KB) 让我很好奇,所以我偷看了它的来源:它是一个 self-contained C file,只有 4 个包含:errno.h
、stdlib.h
、{{1 }} 和 stdio.h
,并且仅依赖于 libc。美丽!
答案 5 :(得分:1)
我已经创建了一个perl脚本来为git diff生成html表。要首先使用此脚本,您必须使用git diff sha1s收集差异...&gt; diff.file,然后运行diff2html.pl diff.file。 访问:
http://kernel-demystified.com/forum/index.php/topic,23.msg28.html#new
答案 6 :(得分:1)
你可能想要检查github项目rmed,它提供了一个命令行工具,使用vimdiff生成静态可共享的html差异。
答案 7 :(得分:0)
当我使用git bash时,如果你使用git show
,你只需要复制并粘贴控制台中显示的内容,它就会正确复制颜色。
答案 8 :(得分:0)
我知道这个问题很老了。但是,如果您使用的是 PHP,我刚刚分享了一个简单的渲染器,它为本地 git diff 控制台输出添加了一些样式:https://github.com/nrctkno/git-diff-renderer .