我喜欢使用git diff --color-words
命令来清晰地查看文件中已更改的单词:
但是,我想与没有安装git或者无法显示颜色的终端的人共享此diff结果。那么有没有工具或技巧可以将带有颜色转义符的终端输出转换为HTML格式呢?
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/
。
diff2html
,因为它看起来很糟糕。 - hendry我刚在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)引起了我的好奇心,所以我查看了它的源代码:这是一个自包含的C文件,只包括4个头文件:errno.h
、stdlib.h
、stdio.h
和string.h
,并且仅依赖于libc。 美妙!
npm
安装 diff2html,还有其他方式可以安装吗? - dokaspar不知道有任何工具可以完全满足您的要求。但是这里有一段我经常用来输出HTML格式化彩色差异的代码:simplediff
它在PHP和Python中都可用。输出使用<del>
和<ins>
标签标记差异,因此您可以轻松地使用CSS对其进行着色。
git show
命令,只需要复制并粘贴控制台中显示的内容,它会正确地复制颜色。我已经创建了一个Perl脚本来为Git diff生成HTML表格。要使用此脚本,首先您必须通过使用git diff sha1s... > diff.file收集差异,然后运行diff2html.pl diff.file。 访问:
http://kernel-demystified.com/forum/index.php/topic,23.msg28.html#new
Unable to determine IP address from host name kernel-demystified.com
- ArcherGodson我知道这个问题很老了。然而,如果你正在使用PHP,我刚刚分享了一个简单的渲染器,可以为本地git diff控制台输出添加一些样式:https://github.com/nrctkno/git-diff-renderer。
git diff f0f7dfb4 43f7949 --color | ./ansi2html.sh > changes.html
。 - alexleonard