web-dev-qa-db-ja.com

git log --graphの線の色はどういう意味ですか?

git log --graphの線の色が何を意味するのか知りたいです。

はい、コンソール出力の左端にあるコミット|を接続する行/\*について質問しています。

part of git log --graph output

質問#1
これらの色には隠された意味がありますか?
または、それらは擬似ランダムに選択されますか?

質問#2
時々オーバーラップしている(が切断されている)ラインは同じ色です。
たとえば、上のスクリーンショットの紫色の線を見てください:

  • a55からe1cまでの最初の行
  • 3c1から043までの2行目

孤立した(共通のコミットを持たない)同じ色の線が重なるのを避けるために、色を賢く選択するようにgitに依頼することは可能ですか?
グラフを読みやすくしたい。

26

色は、線を他の線と区別して見やすくするためのものです。質問#1に答えるために、それらは疑似ランダムではなく、sequentiallyが割り当てられ、git log --graphが新しい「列番号」を選択するたびに割り当てられます。残念ながら、私が知っている2つの問題があります。どちらもあなたの質問#2に結びついています。

これは名前ごとの色の完全なリストです

    GIT_COLOR_RED,
    GIT_COLOR_GREEN,
    GIT_COLOR_YELLOW,
    GIT_COLOR_BLUE,
    GIT_COLOR_Magenta,
    GIT_COLOR_CYAN,
    GIT_COLOR_BOLD_RED,
    GIT_COLOR_BOLD_GREEN,
    GIT_COLOR_BOLD_YELLOW,
    GIT_COLOR_BOLD_BLUE,
    GIT_COLOR_BOLD_Magenta,
    GIT_COLOR_BOLD_CYAN,

視覚的には、これらの色の多くは「同じに見える」(または、見分けがつかないほど十分に似ている)。特に、「太字」で印刷された文字がかなり少ない場合を除いて、「太字」の文字は「通常の」文字に非常に似ています。つまり、私のMacターミナルフォントの「太字」は、それほど太字ではありません。その標準重量より。これにより、たとえば、GitのGitリポジトリで実行されるgit log --graph --decorate --oneline --allのグラフの多くの行が視覚的に非常に類似しています。

Edit:これは、新しいlog.graphColors構成エントリを使用して、Git 2.12以降で修正可能(または回避策可能)になりました。これは、色の名前または色の番号のコンマ区切りのリストです(値セクションの「色」の git configドキュメントエントリ を参照してください)。

次に、「列番号」は現在、実際には行の列番号ではありません。代わりに、それはコミットの列番号です。線の色は、そのコミットからその上のコミットまでpになります。イメージスナップショットのすべてのマゼンタの行は、列#0に出力されたコミットに移動します。a55fd8d3c1494aはどちらも「列0」にあります。 (どちらもマージコミットなので、入ってくる行を統合します。)

Gitに色を賢く選択するように依頼して、分離された(共通のコミットを持たない)同じ色の線が重なるのを避けることはできますか?

いつでも GitのGitリポジトリ を複製して新しいコードを書くことができます。ただし、既存の graph.c は約1400行です。

11
torek

このコミット 73c727d69f47572bf7f21fa31831f9a3fdad944c ( "log --graph:グラフの行をconfig log.graphColorsでカスタマイズする"、2017-01-19)では、chooselog.graphColors config を使用した色。

標準端末でも、背景色が黒でも白でもない場合、グラフの線が背景と一致して非表示になることがあります。これを使用して、背景色(または単に嫌いな色)を除外できます。

上記の理由により、Git Bashを使用し、GIT_COLOR_BLUEの色を除外しています。

16進数のカラーコードを使用できます(少なくともGit Bashでは)。以下の設定では、3色のみを使用しています。

[log]
    graphColors = "#ffffff",red,green
6
hIpPy

タコのマージの場合、これらの色は正確ではないことに注意してください。つまり、2つの親よりもmoreのマージコミットを意味します。

タコのマージの "git log --graph"が誤って色付けされることがあります。これはGit 2.24(2019年第4四半期)で実証および文書化されていますが、まだ修正されていません。

commit 11c21f2commit 25eb905commit 63be8c8commit a7a559commit 94ba151 を参照してください(2019年10月4日)作成者 Denton Liu(Denton-L
Junio C Hamano-gitster- によってマージ commit 5b900fb 、2019年10月15日)

t4214 :タコグラフの色付けエラーを示します

サインオフ:Denton Liu

タコのマージのグラフ色付けロジックには現在バグがあります。これは git.git with 74c7cfa875 (Merge of http://members.cox.net/junkio/git-jc 。git、2005-05-05)、2番目の子は 211232bae6 (次の5つのパッチのタコのマージ、2005-05-05)。

走れば

git log --graph 74c7cfa875

タコのマージの色が間違っていることがわかります。
特に、水平のダッシュは1色ずれています。各水平ダッシュは、右下への線の色です。代わりに、それらは現在、一番下の線の色です。

0
VonC