2012-03-14 29 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