2012-07-16 67 views
4

是否可以向git提交消息添加某種指令(metasymbols?),以便它們在git log輸出中顯示顏色?是否有可能'着色'git日誌消息?

編輯:我會更具體 - 是否有可能在不同顏色的提交信息中標記幾個字?我想將顏色標記嵌入到提交消息中,並通過git log進行檢查。例如,我想要錯誤ID顯示爲紅色。有可能有這樣的事情嗎?

+1

[在git的日誌彩色]的可能重複(http://stackoverflow.com/questions/5889878/color-in-git-log) – 2012-07-16 11:38:09

+1

@ Christian.K,我相信這不是我正在尋找的。我已經擴展了我的問題描述,使我的觀點更加清晰。 – shytikov 2012-07-16 11:45:09

回答

1

git log可以採用參數--pretty,它允許您指定一個格式字符串,您也可以在其中指定參數的顏色。然後,您可以將它別名爲新的shell命令。見PRETTY FORMAThere

3

您可以通過git config選項color.ui設置true打開colourised輸出。以下應該工作。

git config --global color.ui true 

然後你就可以定義別名使用--pretty=format:".."選項,增加了色彩。但我不認爲有任何類型的自定義匹配。我想這就是你需要對bug ID進行調色的東西。但是,您可以對散列,作者,分支等提交元素進行着色。

1

根據您的編輯,看起來您正在尋找將格式添加到提交日誌消息本身的方法。我會通過說明提交消息存儲爲plain text within Git Objects來回答這個問題。因此,從理論上講,您可以編寫一個程序,使用富文本編輯來讀取和格式化Git Commit對象,允許格式化文本,幾乎所有現有程序都限制爲使用純文本格式。

這就是說,你可以使用上面提到的--pretty選項,並結合聰明的提交命名來使bug ID突出。

0

你可以手動完成,例如像這樣的東西:

git log --color=always | grep --color=always -C1000 BUG- | less -R 
0

退房線20和我.gitconfig 21我如何定製git的日誌顏色。

這些是我的兩個着色git日誌的faviorite git別名。

lg1 = log --graph --all --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(bold white)— %an%C(reset)%C(bold yellow)%d%C(reset)' --abbrev-commit --date=relative

lg = log --graph --all --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n'' %C(white)%s%C(reset) %C(bold white)— %an%C(reset)' --abbrev-commit

0

的答案,我還沒有發現這裏呢,是爲了獲得顏色代碼在git loggit diff正確顯示,你可能還需要指定該默認core.pager設置爲使用less(如在許多disto中)。然而,較少沒有通過顏色代碼的權利,除非您還給-r未加工)選項。所以,你需要這樣做:

git config --global color.ui true 
git config --global core.pager 'less -r'