かなりフォーマットの色をGit


81

Git用にきれいなフォーマットの色を設定しようとしています。私の知る限り、バージョン1.6.0は赤、緑、青しか認識しません。

$ git log --pretty=format:"%Credred%Creset %Cgreengreen%Creset %Cyellowyellow%Creset %Cblueblue%Creset %Cmagentamagenta%Creset %Ccyancyan%Creset %Cwhitewhite%Creset"
red green %Cyellowyellow%Creset blue %Cmagentamagenta %Ccyancyan %Cwhitewhite

さらに、どの色も括弧で囲まれた色形式では機能しません。

Gitで利用可能なきれいなフォーマットの色を一覧表示する方法はありますか?

残念ながら、これはレガシーSCO OpenServer 5.0.7マシン上にあり、SCOSkunkworksによってリリースされたGitの最後のバージョンは1.6.0.3でした。


1
プラットフォームが廃止された場合は、git-scm.comから最新のgit 1.8.xをダウンロードして、自分でコンパイルしてみませんか?次に、最新の機能をすべてサポートします。
mvp 2013年

@mvpさて、あなたが言ったように、プラットフォームは時代遅れです-つまり、GNUビルド環境の欠如を意味します。Linuxに移行するための既存のアプリケーションソースコードを準備しています。
James Allman

Git 2.3.0(2015年2月)では、24ビットの色値が可能になり、色属性(太字、下線など)の管理が向上することに注意してください。以下の私の答えを
VonC 2015年

Git 2.26(2020年第1四半期)では、明るいaixterm色をサポートするために、属性「bright」が追加されます。参照してください下に私の編集済みの答えを
VonC

回答:


144

私は古いバージョンがありませんgit以外の色ことを確認するredblueとはgreenサポートされていますが。

ただし、最近のバージョンgit(1.7.10を使用した場合など)でも気付いたのはred、以外の色greenblueあり、括弧内に含める必要があること()です。以下のためにredgreenそしてblue、括弧はオプションです。

だからこれを試してみてください:

git log --pretty=format:"%Credred%Creset %Cgreengreen%Creset %C(Yellow)yellow%Creset %Cblueblue%Creset %C(magenta)magenta%Creset %C(cyan)cyan%Creset %C(white)white%Creset"

私が少なくとも知っているリストは次のとおりです。

normal
black
red
green
yellow
blue
magenta
cyan
white

次のいずれかの属性と組み合わせることができます。

bold
dim
ul
blink
reverse
italic
strike
bright  # (Git 2.26, Q1 2020, example: brightred)

を使用し.gitconfigて色を変更しようとしている場合は、前景色背景の2つの色を指定でき、属性と組み合わせることができます。


原色のみがサポートされているという点であなたは正しいと思います。括弧で囲まれたカラーフォーマットは、このバージョン(1.6.0.3)ではまったく機能しません。
James Allman

16
スペース別の前景、背景、このような属性%C(赤緑太字)
HexInteractive 2013年

少なくとも2つの他の属性があります:ここgit-scm.com/docs/git-configのマニュアルに書かれているように、そして完全性の理由から、イタリックストライクです。
onemorequestion

1
@onemorequestion問題ありません。それに応じて回答を編集しました。ちなみに私はあなたの他の答え(stackoverflow.com/a/61487052/6309)が本当に好きでした。
VonC

40

Git 2.3.0(2015年2月)では次のことが可能になります(Jeff Kink(peff)に感謝):


parse_color:24ビットRGB値をサポート

一部の端末(XTermなど)では、通常のANSIカラースキームの拡張機能を使用して、完全な24ビットRGBカラー仕様を使用できます。
ユーザーが16進数のRGBカラーを指定できるようにして、ホットピンクのrefデコレーションの非常に重要な機能を有効にしましょう。

git log --format="%h%C(#ff69b4)%d%C(reset) %s"

  • 色属性のより良い管理:

parse_color:「no$foo」を認識してクリアする$foo属性ます

カラースペックに「reverse」を入れることで、「reverse」などのANSIテキスト属性をオンにできます。ただし、リバースをオフにするように要求することはできません。

一般的なケースでは、これは問題ではありません。色付きのセクションの先頭で「リバース」をオンにしてから、「リセット」ですべての属性をクリアします。

ただし、一部の属性をオンにしてから、他の属性を選択的に無効にすることもできます。例えば:

git log --format="%C(bold ul yellow)%h%C(noul) %s"

ハッシュだけに下線を引きますが、残りの属性を再指定する必要はありません。

これは、次のようなサードパーティプログラムにも役立ちます。 contrib/diff-highlight、既存の色付けを中断せずに一部の属性をオン/オフにしたいます。

一部の属性仕様はおそらく無意味であることに注意してください(例: " bold nobold")。そのような構造にフラグを立てる必要はなく、代わりに端末に分類させます。


Git 2.26(2020年第1四半期)では、基本的な7色がより明るい対応物(例: " brightred")を学習しました

Eyal Soha( ``)によるcommit c444f03commit 1751b09commit 4a28eb0(2020年1月21日)を参照してください。(合併によりJunio C浜野- -87f17d7コミットし、2020年2月25日)を
gitster

color.c:明るいaixtermカラーをサポート

サインオフ:Eyal Soha

これらの色は、3ビット色の明るいバリエーションです。

前景の30-37の範囲と背景の40-47の範囲の代わりに、それぞれ90-97と100-107の範囲に住んでいます。

git configドキュメントが今含まれています:

受け入れられた基本的な色はnormalblackredgreenyellowbluemagentacyanwhite
与えられた最初の色は前景です。2番目は背景です。

を除くすべての基本色にnormalは、色の前に。のbrightように付けることで指定できる明るいバリエーションがありますbrightred


stackoverflow.com/a/12798205/6309も参照してください:git 2.9.1は、イタリックとストライクの2つの新しい属性をサポートしています。
vonC 2016

2
gitエイリアス内にRGBカラーを含める方法を知っていますか?コメントを開始する#ff69b4ため、コマンドラインでは機能しますが、エイリアスでは機能しません#
Tim Malone

@TimMaloneまだテストしていませんが、configのマニュアルページには、「名前の後の先頭の空白=、最初のコメント文字#またはの後の行の残り;、および行の末尾の空白は、二重引用符で囲まれていない限り破棄されます。 "
VonC 2016

1
@TimMaloneエイリアス全体を"-quotesで囲むと、#特別なものにはなりません。
トム・ヘイル

@VonC、これらのgit logコマンド出力をテキストまたはクリップにパイプすると、奇妙な文字が表示されます。これは、色と属性がで使用されている場合に発生するよう--formatです。理由やこれを修正するためのアイデアはありますか?
hIpPy 2016

7

私のgitログ形式を共有します:

$ git log --graph --pretty=format:'%C(magenta)%h%Creset -%C(red)%d%Creset %s %C(dim green)(%cr) %C(cyan)<%an>%Creset' --abbrev-commit

エイリアスを〜/ .gitconfigに追加することもできます。

[alias]
    logs  = log --graph --pretty=format:'%C(magenta)%h%Creset -%C(red)%d%Creset %s %C(dim green)(%cr) %C(cyan)<%an>%Creset' --abbrev-commit

次に、で定義したエイリアスを使用できます~/.gitconfig

$ git logs

7
問題は、gitのきれいなフォーマットの色を見つける方法を尋ねることです。
ラプナー2015年

4

私はUbuntu18.04を使用しており、XiaofeiHANの提案を使用することができました。

これを完了しようとしている初心者のために、私は.gitconfigを編集することによって最高の運がありました。

nano ~/.gitconfig

[エイリアス]ブロックを上から既存のテキストの下に貼り付けます

CTRL + O(書き出す)+ CTRL + X(nanoを閉じる)

これを行った後、あなたが使用できるきれいな色を見るために

git logs

を使用して

「gitlog」は色なしのビューを取得します、

'git logs --oneline'についても同じですが、側面に繁栄が表示される点が異なります。

ありがとう、これが誰かを助けることを願っています


4

@VonCの回答に示されているように、カスタムの16進カラー値を使用する構文を理解した後で作成した2つのエイリアスを次に示します。

4つのバージョンがあり、唯一の違いは--graphディレクティブであり、「f」バージョンには、追加、削除、または変更されたファイルも表示されます。

[alias]
    lg = log --graph --pretty=format:"%C(#cd9a00)%h\\%C(#0080ff)\\ <%an>\\ %C(#17b062)(%cr)\\ %d\\%C(#c0d6de)%s"    
    l1 = log --pretty=format:"%C(#cd9a00)%h\\%C(#0080ff)\\ <%an>\\ %C(#17b062)(%cr)\\ %d\\%C(#c0d6de)%s"    
    lgf = log --name-status --graph --pretty=format:"%C(#cd9a00)%h\\%C(#0080ff)\\ <%an>\\ %C(#17b062)(%cr)\\ %d\\%C(#c0d6de)%s" 
    l1f = log --name-status --pretty=format:"%C(#cd9a00)%h\\%C(#0080ff)\\ <%an>\\ %C(#17b062)(%cr)\\ %d\\%C(#c0d6de)%s"

私はこのサイトを使用して、必要な正確な色を選択し、そこから16進値をコピーしました。

https://www.colorhexa.com/

Windowsの場合、「C:\ Users \ YourUserName」フォルダーにある.gitconfigファイルを開き、上記のようにエイリアスセクションを追加します。

あなたがそれらを好きになることを願っています。

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