git log --graph
の線の色が何を意味するのか知りたいです。
はい、コンソール出力の左端にあるコミット|
を接続する行/
\
*
について質問しています。
質問#1
これらの色には隠された意味がありますか?
または、それらは擬似ランダムに選択されますか?
質問#2
時々オーバーラップしている(が切断されている)ラインは同じ色です。
たとえば、上のスクリーンショットの紫色の線を見てください:
a55
からe1c
までの最初の行3c1
から043
までの2行目孤立した(共通のコミットを持たない)同じ色の線が重なるのを避けるために、色を賢く選択するようにgitに依頼することは可能ですか?
グラフを読みやすくしたい。
色は、線を他の線と区別して見やすくするためのものです。質問#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に出力されたコミットに移動します。a55fd8d
と3c1494a
はどちらも「列0」にあります。 (どちらもマージコミットなので、入ってくる行を統合します。)
Gitに色を賢く選択するように依頼して、分離された(共通のコミットを持たない)同じ色の線が重なるのを避けることはできますか?
いつでも GitのGitリポジトリ を複製して新しいコードを書くことができます。ただし、既存の graph.c は約1400行です。
このコミット 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
タコのマージの場合、これらの色は正確ではないことに注意してください。つまり、2つの親よりもmoreのマージコミットを意味します。
タコのマージの "git log --graph
"が誤って色付けされることがあります。これはGit 2.24(2019年第4四半期)で実証および文書化されていますが、まだ修正されていません。
commit 11c21f2 、 commit 25eb905 、 commit 63be8c8 、 commit a7a559 、 commit 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色ずれています。各水平ダッシュは、右下への線の色です。代わりに、それらは現在、一番下の線の色です。