讓Git的輸出更友好 多種顏色和自定義log格式

2021-08-09 04:49:37 字數 2666 閱讀 3530

讓git的輸出更友好: 多種顏色和自定義log格式

git預設的輸出是單一顏色的,不僅不夠美觀,也不容易閱讀。實際上,git本身就支援用多種顏色來顯示其輸出的資訊,只需在命令列中執行以下命令來修改git的設定,即可開啟多顏色輸出:

git config --global color.status auto
git config --global color.diff auto
git config --global color.branch auto
git config --global color.interactive auto
執行以上命令後,git的status, diff和branch等諸命令的輸出就都是帶有顏色的了。見下圖示例。

完成上述步驟後,git log命令的輸出雖然有了點顏色,但還是顯得枯燥(見下圖)。

不要緊,強大的git提供了自定義log格式的功能,嘗試輸入以下命令:

git log --graph --pretty=format:'%cred%h%creset -%c(yellow)%d%creset %s %cgreen(%cr) %c(bold blue)%creset' --abbrev-commit
你將看到類似下圖的輸出:

怎麼樣,不賴吧?不過,每次檢視log都輸出這麼一長串的命令,實在是不太現實。咱們來通過git的命令別名來解決這個問題。輸入以下命令:

git config --global alias.lg "log --graph --pretty=format:'%cred%h%creset -%c(yellow)%d%creset %s %cgreen(%cr) %c(bold blue)%creset'"
上述命令將建立乙個命令別名lg,每次你使用命令git lg就相當於輸入了剛才那一長串命令。現在,如果想看美觀的多顏色輸出,就使用git lg,如果想看普通的log輸出,就使用git log,二者互不干擾。

如果你想讓log輸出某些特定的資訊,可以自己調整--pretty引數的值,例如下面的命令將只顯示commit的hash,提交時間,提交者姓名:

git log --pretty=format:'%h %ar %an'
把format後面單引號中的內容替換為你想要的格式,即可實現自定義的log輸出格式。這裡的%h,%ar等是一些git預定義的佔位符,完整的列表如下:

%hcommit hash

%hcommit的短hash

%ttree hash

%ttree的短hash

%pparent hashes

%pparent的短hashes

%an作者名字

%anmailmap中對應的作者名字 (.mailmap對應,詳情參照git-shortlog(1)或者git-blame(1))

%ae作者郵箱

%ae作者郵箱 (.mailmap對應,詳情參照git-shortlog(1)或者git-blame(1))

%ad日期 (–date= 制定的格式)

%ad日期, rfc2822格式

%ar日期, 相對格式(1 day ago)

%at日期, unix timestamp

%ai日期, iso 8601 格式

%cn提交者名字

%cn提交者名字 (.mailmap對應,詳情參照git-shortlog(1)或者git-blame(1))

%ce提交者 email

%ce提交者 email (.mailmap對應,詳情參照git-shortlog(1)或者git-blame(1))

%cd提交日期 (–date= 制定的格式)

%cd提交日期, rfc2822格式

%cr提交日期, 相對格式(1 day ago)

%ct提交日期, unix timestamp

%ci提交日期, iso 8601 格式

%dref名稱

%eencoding

%scommit資訊標題

%f過濾commit資訊的標題使之可以作為檔名

%bcommit資訊內容

%ncommit notes

%gdreflog selector, e.g., refs/stash@

%gdshortened reflog selector, e.g., stash@

%gsreflog subject

%cred

切換到紅色

%cgreen

切換到綠色

%cblue

切換到藍色

%creset

重設顏色

%c(…)

制定顏色, as described in color.branch.* config option

%mleft, right or boundary mark

%n換行

%%a raw %

%x00

print a byte from a hex code

%w([[,[,]]])

golang 更友好的格式化輸出

穩定版本 go get u v gopkg.in ffmt.v1 最新版本 go get u v github.com go ffmt ffmtapi 文件 示例package main import ffmt gopkg.in ffmt.v1 func main func example map ...

讓fdisk輸出更準確合理

注意 新版本的fdisk預設輸出已經正確合理了,本文只適用於舊版本的fdisk.root localhost fdisk l disk dev sda 160.0 gb,160041885696 bytes 255 heads,63 sectors track,19457 cylinders uni...

讓APP中內容呈現更友好易用的5種常見導航設計模式

在設計移動端app的時候,最重要的一點是確保介面和互動足夠有用又清晰直觀。如果這兩個基本的特徵都無法達成,使用者是沒有足夠的理由來使用它的,更不用說額外的價值體現了。不過,在確保可用性的前提下,學習曲線太過陡峭,使用者的留存率則不會太高,畢竟學習成本擺在那兒放著。良好的ui設計,通常會幫助使用者解決...