ファイルへのGit diff出力はカラーリングを保持します


123

git diffどういうわけか、出力を着色してファイルに保存することは可能ですか?

私は方法を知っていますgit diff > filename.rtf-これはファイルに保存しますが、色を保持したいのですが。



5
Notepad ++は、.diff拡張子を付けてファイルを保存すると、ファイルを強調表示します。
Monsignor 2014年

回答:


146

試してください:

git diff --color > foo.txt

その後、後の問題:

cat foo.txt

または:

less -R foo.txt

2
@RoR、ある人の「意味不明」は別の人の(まあ、端末の)カラーコードです。;-)試してみましたが、うまくいきました。catコマンドラインからのファイルの場合、カラーリングは保持されます。(他にどのように色が保持されると思いますか?)
mpontillo

1
まあそれはそれがすることです。bashカラーコードを追加します。コンソールでファイルをcatすると、色が表示されます。
ラルフテニーニャ

1
@RoR bashのカラーコードをrtf形式に変換するには、途中に何かを配置する必要があります。
ラルフテニンジャ

3
Notepad ++はdiffファイルを強調表示できます。(* .diff拡張子は自動的に強調表示されLanguage --> D --> Diffます。それ以外の場合は変更します。)デフォルトの色が気に入らない場合は、で変更しますSettings --> Style Configurator --> Diff。色付きの貼り付けをコピーするには、NppExportRTFまたはHTMLへのエクスポート/コピーを可能にするプラグイン(例:)を使用できます。
Nikita G.

3
git diff AB> foo.diff(ファイルは.diffファイルであるため、多くの編集者が色付きでファイルを開きます)
zeusstl

34

ファイルを.diff拡張子で保存し、Notepad ++またはVimまたはSublimeTextで開きます。

git diff > 20150203_someChanges.diff

ありがとう@Monsingor


途中で「>」を忘れたようですが、これは機能しません
GoGoris

20

Sublime Text 2で出力diffファイルを開きます。異なる色を表示します。


1
diffファイルの拡張子が* .diffと異なる場合は、構文をdiffに変更して、適切に強調表示できるようにする必要があります。(表示->構文->差分)。
Nikita G.

diff.txt右下隅に自動的に検出された「Diff」があっても、強調表示されません。
Nakilon、2016

11

@Gabeの答えをさらに詳しく説明します。

出力をansiからhtmlへのコンバーターbashスクリプトにパイプして、その出力をhtmlファイルに送ることができます。

git diff --color|./ansi2html.sh > changes.html

もちろんhtmlはどのブラウザでも表示できるため、Windowsなどで出力を読み取ることができます。

ansi2htmlコードはこちら:http ://www.pixelbeat.org/scripts/ansi2html.sh


動作しません:gawk:cmd。line:25:(FILENAME =-FNR = 1)fatal:スカラーコンテキストで配列 'a(from span)'を使用しようとしています
Tim

2
Homebrewを入手して実行しbrew install gawkます。また、必要になりbrew install gnu-sedます。
ジェフリーブース

まさに私が欲しいもの、素晴らしい!
キース

ansi2html pythonライブラリはgithub.com/ralphbean/ansi2htmlのためにそれを行いました。インストール可能なpipで、この回答のbashスクリプトとまったく同じように機能します。「./ansi2html.sh」を「ansi2html」に置き換えることを忘れないでください。
長崎



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

'* .txt'ファイルで抽出された差分は、設定する必要なく(表示->構文->差分を介して)SublimeText2によって簡単に読み取られます。


git remote rm remotes/b/masterブランチを元の状態にリセットします。
Abhijeet

1

色付けされた端末テキスト... git diffまたはその他...をブラウザから表示できるようにする

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

aha上記を使用してインストールしてから発行する

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

firefox  ~/cool_colorized.html

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.