Git Diff输出到文件保留着色

RoR*_*RoR 104 git

是否有可能git diff,将输出保存到带有着色的文件?

我知道如何git diff> filename.rtf - 它保存到文件但我想保留着色.

ral*_*nja 122

尝试:

git diff --color > foo.txt
Run Code Online (Sandbox Code Playgroud)

后来发行

cat foo.txt
Run Code Online (Sandbox Code Playgroud)

  • Notepad ++可以突出显示diff文件.(*.diff扩展名会自动突出显示,否则会更改`语言 - > D - > Diff`.)如果您不喜欢默认颜色,请在"设置 - >样式配置器 - >差异"中进行更改.要复制带颜色的粘贴,您可以使用允许导出/复制到RTF或HTML的插件(例如`NppExport`). (3认同)
  • @RoR,一个人的"胡言乱语"是另一个人的(好吧,终端的)颜色代码.;-)我尝试了它,它的工作原理; 如果我从命令行"捕获"文件,则保留着色.(你还有什么期望保留颜色?) (2认同)
  • git diff AB> foo.diff(许多编辑器会打开带有颜色的文件,因为该文件是.diff文件) (2认同)

iro*_*yde 27

使用.diff扩展名保存文件,并在Notepad ++或Vim或SublimeText中打开它.

git diff > 20150203_someChanges.diff
Run Code Online (Sandbox Code Playgroud)

谢谢@Monsingor

  • 到目前为止我找到的最佳答案它也适用于 VS Code (2认同)

小智 20

在SublimeText2中打开输出diff文件,它显示diff颜色.


sk8*_*123 9

扩展@ Gabe的答案.

您可以将输出传递给ansi到html转换器bash脚本并将该输出定向到html文件:

git diff --color|./ansi2html.sh > changes.html
Run Code Online (Sandbox Code Playgroud)

当然,任何浏览器都可以查看html,因此可以在Windows等中读取输出.

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

  • 获取Homebrew并运行`brew install gawk`.你还需要`brew install gnu-sed`. (2认同)
  • ansi2html python 库为我做到了 https://github.com/ralphbean/ansi2html。pip 可安装,并且与本答案中的 bash 脚本完全相同。不要忘记将“./ansi2html.sh”替换为“ansi2html”。 (2认同)

Ros*_*one 8

Vim颜色文件包含git diff的精美.

git diff


ama*_*enn 5

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

您可以传递-c color.ui=always给任何git命令,它会在重定向时保持着色。例如:git -c color.ui=always status > file