軟體版本:
作業系統: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.乙個人蜷縮在床上,無法入睡,腦子裡想著莫名其妙的問題,黑暗猶如一張巨大...