2012-03-14 189 views
64

有没有可能git diff,将输出保存到带有着色的文件?Git Diff输出到文件保留着色

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

+2

您可以将安装aha HTML与颜色:http://stackoverflow.com/questions/2013091/coloured-diff-to-html – 2012-03-14 17:31:59

+4

如果您使用.diff扩展名保存它,Notepad ++将突出显示该文件。 – Monsignor 2014-11-05 12:33:09

回答

83

尝试:

git diff --color > foo.txt 

然后再发出一份载有git的差异的精美

cat foo.txt 
+2

@罗尔,一个人的“胡言乱语”是另一个人的(好的,终端的)颜色代码。 ;-)我试了一下,它的工作原理;如果我从命令行读取文件,着色被保留。 (你会怎么看待这些颜色的保存?) – mpontillo 2012-03-14 17:20:05

+1

这就是它的功能。添加bash着色代码。如果您在控制台中捕捉文件,则会显示颜色。 – ralphtheninja 2012-03-14 17:20:41

+0

@Mike LOL几乎相同的答案:) – ralphtheninja 2012-03-14 17:21:45

6

Vim的颜色文件。

git diff

15

开启在SublimeText2输出差异文件,它示出了差异的颜色。

+1

您可能需要更改语法diff以在diff文件扩展名不同于* .diff的情况下启用适当的高亮显示。 (通过查看 - >语法 - >差异)。 – 2015-10-22 22:27:41

+0

^或从右下角给出的选项。 – akki 2016-02-06 10:40:03

+0

即使自动检测到右下角的“差异”,它也不会为我突出显示“diff.txt”。 – Nakilon 2016-09-20 20:31:10

5

扩展@ Gabe的回答。

可以通过管道输出到一个ANSI转换为HTML bash脚本,并指示将输出到HTML文件:

git diff --color|./ansi2html.sh > changes.html 
当然HTML的

可以通过任何浏览器这样的输出可以在Windows等阅读。

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

+0

不起作用我得到:gawk:cmd。第25行:(FILENAME = - FNR = 1)fatal:尝试在标量上下文中使用数组'a(from span)' – Tim 2015-05-19 01:59:17

+0

Get Homebrew并运行'brew install gawk'。你还需要'brew install gnu-sed'。 – 2015-10-30 19:53:19

6

保存有.diff作扩展名的文件,并在记事本中打开它++或者vim或者SublimeText。

git diff > 20150203_someChanges.diff 

感谢@Monsingor在 '* .TXT' 文件很容易被SublimeText2阅读提取

+0

我认为你在中间忘了'>',这不起作用 – GoGoris 2017-01-26 07:47:08

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

差异,而不需要设置(通过查看 - >语法 - > DIFF)。

+0

'git remote rm remotes/b/master'将分支重置回它的原始状态。 – Abhijeet 2016-08-17 07:36:17

0

允许任何彩色终端的文字... git的差异或任何其他...是从浏览器查看

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

使用上述然后发出

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

firefox ~/cool_colorized.html