Git diff 输出到文件保持着色

是否可以执行 git diff并以某种方式将输出保存到带有颜色的文件中?

我知道如何做 git diff > filename.rtf-这保存到一个文件,但我想保存的颜色。

129499 次浏览

试试:

git diff --color > foo.txt

接下来的问题是:

cat foo.txt

或者:

less -R foo.txt

Vim 颜色文件包含 git diff 的漂亮。

git diff

打开 崇高文字2中的输出 diff 文件。它显示 diff 颜色。

详述@Gabe 的回答。

您可以将输出通过管道传递给 ansi 到 html 转换器 bash 脚本,并将输出直接传递给 html 文件:

git diff --color|./ansi2html.sh > changes.html

当然 html 可以被任何浏览器查看,所以输出可以在 Windows 等。

Ansi2html 代码在这里: http://www.pixelbeat.org/scripts/ansi2html.sh

保存扩展名为. diff 的文件并在 Notepad + + 、 Vim 或 SublimText 中打开。

git diff > 20150203_someChanges.diff

谢谢@Monsingor

git remote add -f b path/to/repo_b.git
git remote update
git diff master remotes/b/master > foo.txt

在’* 中提取的差异。SublimText2可以很容易地读取 txt’文件,而不需要设置(通过 View-> Syntax-> Diff)。

我在这里找到了答案: 特定 git 命令的颜色输出

您可以将 -c color.ui=always传递给任何 git命令,它将在重定向时保持着色

你可以上传到 GitHub 并提供相关提交的链接。

允许任何彩色终端文本... git diff 或任何其他... 从浏览器可见

sudo apt-get install aha  #  https://github.com/theZiz/aha

安装 aha使用上述然后发出

git diff --color mysourcefile  | aha > ~/cool_colorized.html


firefox  ~/cool_colorized.html

作为文件重定向的替代方法,还可以使用 git diff --output选项

git diff --color --output=aFile
cat aFile
# you would still see the colors

但是,请确保不要使用组合的 diff 格式(对于合并提交的差异) ,如 git diff -cgit diff --cc

对于 Git 2.38(Q32022) ,当显示组合差异时,某些差异选项(包括 --output)当前被忽略; 将它们标记为与特性不兼容。

犯下 cfb19ae第三季,第4集(2022年6月18日) by 勒内 · 沙夫(rscharfe)
(由 朱尼奥 · C · 哈马诺 gitster犯下罪行合并,2022年7月11日)

combine-diff : 如果给定——输出,则终止

埃瓦尔 · 阿恩夫约尔 · 比亚马森报道
签名: René Scharfe

组合差异的代码目前只写入标准输出。
终止并报告该事实,而不是默默忽略 --output选项。
不过,此时已经创建了(空)输出文件。

因此,错误消息将是:

combined diff and '--output' cannot be used together