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 https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration:
Git automatically colors most of its output, but there’s a master switch if you don’t like this behavior. To turn off all Git’s colored terminal output, do this:
$ git config --global color.ui false
The default setting is auto, which colors output when it’s going straight to a terminal, but omits the color-control codes when the output is redirected to a pipe or a file.
You can also set it to always to ignore the difference between terminals and pipes. You’ll rarely want this; in most scenarios, if you want color codes in your redirected output, you can instead pass a --color flag to the Git command to force it to use color codes. The default setting is almost always what you’ll want.
cat the file from the command-line. (How else would you expect the colors to be preserved?)Language --> D --> Diff.) If you don't like default colors, change them in Settings --> Style Configurator --> Diff. To copy paste with colors you can use a plugin (e.g. NppExport) that allows exporting/copying into RTF or HTML.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.
diff.txt for me, even with automatically detected "Diff" in the right bottom corner.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
brew install gawk. You'll also need brew install gnu-sed.git diff --word-diff --color commit1 commit2 | ansi2html > changes.html.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
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--outputoption.
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).
git remote rm remotes/b/master to reset branch back to it's original state.