git 定製屬於你的log格式

2022-02-07 03:46:40 字數 3139 閱讀 5186

軟體版本:

作業系統:ubuntu10.04

核心版本:linux version 2.6.32-36-generic

git 版本:git version 1.7.0.4

1. 檢視提交歷史

命令:git

log2. 選項 --pretty[=]

1)介紹

除了預設格式檢視提交歷史以外,還可以通過

--pretty[=] 或者

--format[=]

制定輸出格式。可以是 noeline, short,

medium, full, fuller, email, raw, format: 中的乙個,他們各自的輸出格式可以參考 git

log --help 或者(3)。接下來我們主要是討論 format: 的使用方法。

2)定製提交格式 --pretty=format:

--pretty=format:"format" 的用法就想 printf 的用法一樣,只是換行從 \n 變為 %n

。下面列出一些常用的佔位符,分別來自於

(1)和

(2),更詳細請參考

(3)或者 git

log --help。

選項       說明

%h   提交物件(commit)的完整雜湊字串

%h   提交物件的簡短雜湊字串

%t   樹物件(tree)的完整雜湊字串

%t   樹物件的簡短雜湊字串

%p   父物件(parent)的完整雜湊字串

%p   父物件的簡短雜湊字串

%an  作者(author)的名字

%_ae  作者的電子郵件位址

%_ae 中的 _ )

%_ad  作者修訂日期(可以用 -date= 選項定製格式)% ad 中的 _ )

%ar  作者修訂日期,按多久以前的方式顯示

%cn  提交者(committer)的名字

%_ce 提交者的電子郵件位址%_ce 中的 _ )

%_cd  提交日期%_cd 中的 _ )

%cr  提交日期,按多久以前的方式顯示

%d:  ref名稱

%s:  提交的資訊標題

%b:  提交的資訊內容

%cred: 切換到紅色

%cgreen: 切換到綠色

%_cblue: 切換到藍色

%_cblue 中的 _)

%creset: 重設顏色

%c(...): 制定顏色, as described in color.branch.* config option

%n:  換行

注意:作者(author)_和_提交者(committer)_之間究竟有何差別,其實作者指的是實際作出修改的人,提交者指的是最後將此工作成果提交到倉庫的人。所以,當你為某個專案發布補丁,然後某個核心成員將你的補丁併入專案時,你就是作者,而那個核心成員就是提交者。引用來自(1)。

例如,我們只需要輸出完成的雜湊值以及提交的資訊標題,就可以使用命令:

$git log --pretty=format:"%h %n %s"

38896a27dc8ab4f47883bd67d300f6145f0478b7

commit write 2

7d3e94cf22b17f7d097479ae8d9367e42509bb3f

initial commit

3)定製專屬於你的 log 格式

根據上面的說明,我們可以定製屬於自己 log 格式:

$git config --global alias.lg "log --graph --pretty=format:'%cred%h%creset @%c(yellow)%d%creset %n author: %cn <%_ce> %n date: %_cd %_cblue(%cr)%creset %n %n commit subject: %cgreen%s%creset %n'"

注:命令中 %_ce、%_cd、%_cblue 分別去除其下劃線 _ 。

$git lg

* 38896a27dc8ab4f47883bd67d300f6145f0478b7 @ (head, master)

|  author: eddy

|  date: thu feb 2 17:06:06 2012 +0800 (8 days ago)

|  |  commit subject: commit write 2

|  * 7d3e94cf22b17f7d097479ae8d9367e42509bb3f @

author: eddy

date: thu feb 2 17:05:00 2012 +0800 (8 days ago)

commit subject: initial commit

4)其它選項

git log 支援的選項有很多,詳細請參考 git log --help ,常用的有(引用(1)中的表2-2):

選項   說明

-p     按補丁格式顯示每個更新之間的差異。

--stat 顯示每次更新的檔案修改統計資訊。

--shortstat 只顯示 --stat 中最後的行數修改新增移除統計。

--name-only 僅在提交資訊後顯示已修改的檔案清單。

--name-status 顯示新增、修改、刪除的檔案清單。

--abbrev-commit 僅顯示 sha-1 的前幾個字元,而非所有的 40 個字元。

--relative-date 使用較短的相對時間顯示(比如,「2 weeks ago」)。

--graph 顯示 ascii 圖形表示的分支合併歷史。

--pretty 使用其他格式顯示歷史提交資訊。可用的選項包括 oneline,short,full,fuller 和 format(後跟指定格式)。

參考資料:

(1)

(2)

(3)

定製自己的Log日誌工具 輕鬆控制log列印

在寫專案時為了方便除錯,往往會在 的很多地方都列印大量的日誌。最近專案基本完成了,這時卻有乙個非常讓人頭疼的問題,就是之前用於除錯的那些日誌在專案上線之後仍舊會照常列印,這樣不僅會降低程式的執行效率,還有可能將一些重要的資料洩露出去。為了不讓專案上線後繼續列印這些日誌,就有人會想到乾脆把之前的日誌輸...

定製一套屬於自己的部落格樣式

根據最近技術程式設計 排行榜單,還是擁有不錯的知名度和影響力的,作為乙個技術分享的平台,能在其擁有一套屬於自己獨特風格的樣式,很關鍵!註冊的賬號後,部落格是要自己申請的,找到申請人口,告訴園長大大自己要開通部落格的小心願 注意 一定不要copy,不然可能會不通過的 審核通過後會收到郵件通知的,大概需...

屬於你的13種寂寞

獨自在街道上遊蕩,看著街道上熙熙攘攘的人群,那些歡笑著的臉孔,那些都是不屬於你的,你只是乙個過客,什麼也帶不走,什麼也留不下 再怎樣的熱鬧,再怎樣的繁華,卻越發襯托你的形單影隻 在人群中,你默然抬起頭,卻找不到一張熟悉的面孔 2.乙個人蜷縮在床上,無法入睡,腦子裡想著莫名其妙的問題,黑暗猶如一張巨大...