2012-10-02 56 views
54

在做我喜歡的git的日誌查看我創造了這個別名:如何每個分支型模擬git的日誌--decorate的不同顏色

graph = log --pretty=format:'%Cgreen%ad%Creset %C(yellow)%h%Creset%C(yellow)%d%Creset %s %C(cyan)[%an]%Creset %Cgreen(%ar)%Creset' --date=short --graph

這將創建一個輸出,如:

Git log result with own coloring

我在這裏遺失的是log --oneline --decorate --graph等分支類型的不同顏色。

Git log result with --decorate(=short)

的--decorate(它默認使用短=),得到不同識別分支的不同的顏色。分支類型(HEAD, origin/master, origin/HEAD, master)爲青色,紅色,紅色,綠色。然而,我的是無色的;僅用整個分支部分的黃色着色。

有沒有辦法給不同顏色的有自己別名的分支?

回答

80

https://stackoverflow.com/a/16844346/55948

正如吉特1.8.3(2013年5月24日),您可以使用%C(auto)裝飾 %dgit log格式字符串。

release notes

* "git log --format" specifier learned %C(auto) token that tells Git 
    to use color when interpolating %d (decoration), %h (short commit 
    object name), etc. for terminal output.) 
+3

真棒!看了幾個小時,謝謝!!!對於谷歌,添加一些關鍵字:%d,ref名稱,--oneline – astgtciv

+2

謝謝你。非常好隱藏的寶石! – Munter

+0

不幸的是,我與版本1.7.12.4 :(所以%d和%C(自動)將無法正常工作。%ad%和%h ...等顏色可以單獨定義,我有麻煩與分支名稱的顏色任何想法*字符串格式的* *可以找到? – Radu

1

我不相信這是可能的。通過git-log(1)手冊頁查看,--pretty的唯一相關格式似乎是%d,它給你所有的ref名稱。由於沒有任何區分參考類型的選項,因此不能爲每種類型指定不同的顏色。請參閱this question

+1

這個答案不再是真實的。從git 1.8.3(2013年5月24日)開始,可以使用%C(auto)在git log的格式字符串中修飾%d。 –