如何漂亮地打印出 git-diff 输出?

问题描述 投票:0回答:4

对于我即将发表的学士论文,我需要打印论文附录的 git-diff 输出。我真的很喜欢

git diff --color-words
的输出,但我完全不知道如何将其(彩色且包含行号)带到我的 Mac 上的一张纸上。我知道有像 SourceTree 这样的工具,但即使有了这些工具,我似乎也无法从单个文件的差异中打印出漂亮的内容。

嗯,我很确定我不是唯一一个遇到这个问题的人,我找到了一些建议的 ansi2html 解决方案,但它们似乎不适用于我的 git 版本(1.7.10.2)。我还考虑过简单地打印 Github 提交页面(这真的很漂亮,看起来像我需要的),但是当我尝试打印它时,浏览器会自动删除所有颜色和格式。

感谢您的帮助!

git printing diff git-diff
4个回答
19
投票

使用

aha
。您可以使用
sudo apt-get install aha
在 ubuntu 中安装它。另请参阅https://github.com/theZiz/aha

$ git diff --color-words | aha > index.html
$ firefox index.html

Firefox 应该能够以彩色打印它。查看

aha --help
了解其他一些很酷的选项。


11
投票

我刚刚尝试了 Github 上托管的 npm 包:pretty-diff

您可以通过 npm 安装它并像使用

git-diff
一样运行它,例如:

pretty-diff HEAD^

将打开一个新的浏览器窗口,您可以将其另存为 html。我尝试在不同的浏览器中再次打开它,但颜色仍然显示。您还可以使用您的 github 帐户创建要点并共享它们。


2
投票

由于您使用的是带有终端应用程序的 Mac,因此只需从终端剪切并粘贴到另一个应用程序即可。


1
投票

我发现非常有用的是将其通过管道传输到bat,一只现代猫。 如果您只想要特定的差异,则可以照常使用该命令。

git diff | bat

您还可以在 shell 配置文件中设置别名,以避免每次都输入它。

© www.soinside.com 2019 - 2024. All rights reserved.