Is it possible to do git diff
and save the output to a file with the coloring somehow?
I know how to do git diff > filename.rtf
- which saves to a file, but I'd like to preserve the coloring.
Is it possible to do git diff
and save the output to a file with the coloring somehow?
I know how to do git diff > filename.rtf
- which saves to a file, but I'd like to preserve the coloring.
Try:
git diff --color > foo.txt
Then later issue:
cat foo.txt
Or:
less -R foo.txt
Save the file with a .diff extension and open it in Notepad++ or Vim or SublimeText.
git diff > 20150203_someChanges.diff
Thanks @Monsingor
Open the output diff file in Sublime Text 2. It shows the diff colors.
To expand on @Gabe's answer.
You can pipe the output to an ansi to html converter bash script and direct that output to an html file:
git diff --color|./ansi2html.sh > changes.html
of course html can be viewed by any browser so output can be read in Windows etc.
ansi2html code is here: http://www.pixelbeat.org/scripts/ansi2html.sh
I found an answer here: Color output of specific git command.
You can pass -c color.ui=always
to any git
command and it will keep coloring on redirection. For example: git -c color.ui=always status > file
to allow any colorized terminal text ... git diff or any other ... to be viewable from a browser
sudo apt-get install aha # https://github.com/theZiz/aha
install aha
using above then issue
git diff --color mysourcefile | aha > ~/cool_colorized.html
firefox ~/cool_colorized.html
As an alternative to file redirection, you also have the git diff --output
option
git diff --color --output=aFile
cat aFile
# you would still see the colors
However, make sure to not use the combined diff format (for diff on merge commits), like git diff -c
or git diff --cc
With Git 2.38 (Q3 2022), certain diff options (including --output
) are currently ignored when combined-diff is shown; mark them as incompatible with the feature.
See commit cfb19ae, commit e3d1be4 (18 Jun 2022) by René Scharfe (rscharfe
).
(Merged by Junio C Hamano -- gitster
-- in commit a2d1f00, 11 Jul 2022)
combine-diff
: abort if --output is givenReported-by: Ævar Arnfjörð Bjarmason
Signed-off-by: René Scharfe
The code for combined diffs currently only writes to stdout.
Abort and report that fact instead of silently ignoring the--output
option.
The (empty) output file has already been created at that point, though.
The error message would therefore be:
combined diff and '--output' cannot be used together
git remote add -f b path/to/repo_b.git
git remote update
git diff master remotes/b/master > foo.txt
Differences extracted in '*.txt' files are easily read by SublimeText2 without the need to set (via View -> Syntax -> Diff).
You could upload to GitHub and provide a link to the relevant commit.